ビット演算子ノート
2112 ワード
ビット演算子ノート
10進数:42対応バイナリ:原号:000000000000000000000000000000000101010逆符号:11111111111111111010101符号:11111111111111111111111111111111111111111010110//符号=原号逆+1=逆符号+1
11111111111111111111111111010101
+ 1
11111111111111111111111111010110
42取反(逆符号):~42
ビットと&演算
9 & 5
9= 1001
5= 0101
0001 =1
9 & 5 =1
通常255(11111111または16進0 xFF)と&演算し、高8ビット清0、低8ビット保持
ビットまたは|演算
9 | 5
9= 00001001 5= 00000101 00001101 =13
ビット別OR^演算
9 ^ 5
9= 00001001
5= 00000101
00001100 =12
左シフト演算<<
左シフト演算子「<<」は両目演算子です.左シフトnビットは2を乗じたn次方である.その機能は「<<」の左の演算数の各バイナリを全部左に数ビットシフトし、「<<」の右の数で移動するビット数を指定し、高位を捨て、低位を0に補う.9<<3
9= 00001001 << 00001001000 =72
右シフト演算>>
右シフト演算子">>は両目演算子です.右シフトnビットは、2で割ったn次数で説明すべきものであり、符号数がある場合、右シフト時に符号ビットが付随して移動する.正数の場合、最高位補0、負数の場合、シンボルビットは1であり、最高位が補0または補1はコンパイルシステムの規定に依存する.Turbo Cと多くのシステムは補1と規定されている.9>>3
9= 00001001 >> 00000001001 =1
-9>>3
-9= 10001001 >> 11100001001 =-777
符号なし右シフト
符号なし右シフト(>>>>>)は,シフト中に符号要素を考慮せずに正数処理する.シンボルビットは、常に0 9>>3および-9>>>3の等値です.
9= 00001001 >> 00000001001 =1