タグ付けされた質問 「bit-shift」

9
ビット単位のシフト(ビットシフト)演算子とは何ですか?
私は暇なときにCを学ぼうとしましたが、他の言語(C#、Javaなど)は同じ概念(そして多くの場合同じ演算子)を持っています... 私は思ったんだけどは、コアレベルでは、何が(ビットシフトんされ<<、>>、>>>)、それが解決する何の問題を助けることができる、そしてどのような落とし穴は、曲げの周りに潜んでいるのですか?言い換えれば、そのすべての良さをビットシフトするための絶対初心者向けガイドです。

3
Cの>>> =演算子とは何ですか?
同僚からパズルとして与えられたので、このCプログラムが実際にどのようにコンパイルされて実行されるのか理解できません。この>>>=演算子と奇妙な1P1リテラルは何ですか?ClangとGCCでテストしました。警告はなく、出力は "???"です。 #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] ) printf("?"); return 0; }

19
Cのシフト演算子を使用した乗算と除算は実際には高速ですか?
乗算と除算は、ビット演算子を使用して実現できます。 i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) 等々。 直接(i<<3)+(i<<1)使用i*10するよりも、sayを使用して10を乗算する方が実際に高速ですか?この方法で乗算または除算できない入力の種類はありますか?


1
Python 3.x整数の場合、ビットシフトよりも2倍高速ですか?
私はsorted_containersのソースを見ていて、この行を見て驚いた: self._load, self._twice, self._half = load, load * 2, load >> 1 これloadは整数です。ある場所でビットシフトを使用し、別の場所で乗算を使用するのはなぜですか?2による整数除算よりもビットシフトの方が速い場合があるのは理にかなっていますが、乗算もシフトで置き換えてみませんか?私は以下のケースをベンチマークしました: (回、除算) (シフト、シフト) (回、シフト) (シフト、除算) そして#3は他の選択肢よりも一貫して速いことがわかりました: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …




3
11010100 << 1が10101000ではなく110101000に等しいのはなぜですか?
11010100 2のビットをシフトしようとすると、結果は10101000 2ではなく110101000 2になります。 int a = Integer.parseInt("11010100", 2) &lt;&lt; 1; 私はこれをやろうとします: int a = (byte)(Integer.parseInt("11010100", 2) &lt;&lt; 1); しかし、出力値が128より大きい場合、すべてがマイナスになり、これは論理的です。ビット数が変わらないようにするにはどうすればよいですか?
40 java  bit-shift 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.