Page5

Back Next

算術演算のお話の続きです。


その3   左シフト …2倍

全てのビットを左に一つずらします。
それぞれのビットが2倍になるので全体も2倍です。

2進数 1100 11000
10進数 12 (8+4) 24 (16+8)

2進数 10101 101010
10進数 21 (16+4+1) 42 (32+8+2)

例えば10進数の場合は全体を左に一つずらす、
つまり桁を一つ上げると、10倍になります。
2進数は全体を左に一つずらすと2倍になる訳です。


その4   右シフト …1/2倍

全てのビットを右に一つずらします。
右端が1の時は普通は切り捨てられます。

2進数 1100 110
10進数 12 (8+4) 6 (4+2)

2進数 10101 1010
10進数 21 (16+4+1) 10 (8+2)

例えば10進数で「4693」を右に一つずらす、
つまり「469」にすると 1/10倍 になります。3は切り捨て。
2進数は全体を右に一つずらすと1/2倍になる訳です。


その5   論理否定  …NOT演算子

全てのビットを反転します。
与えられた桁数によって結果が変わるので注意。

2進数(4桁) 1100 0011
10進数 12 (8+4) 3 (2+1)

2進数(8桁) 00110110 11001001
10進数 54 (32+16+4+2) 201 (128+64+8+1)

これは実際にプログラム言語などで使う場合は
非常に便利なのですが、そうでない場合は
用途が判り難いかもしれません。


Back Next


戻る