javaは2の補数で負の数を表現する。
2の補数とはすべてのビットを反転させたもの(1の補数)に1を足したものである。
つまり、-1を表現するときには
0x0001(10進数で1)→0xFFFE(1の補数表現での-1)→0xFFFF(2の補数表現での-1)という形になる。
関連する演算子に>>(SHIFT),&(AND),|(OR),^(XOR),!(NOT),~があるので、それぞれ書くと、
x<<y(左シフト) |
値xをyだけ左にシフトする。右には0が入る。従って、2のy乗を行うことができる。 |
x>>y(算術右シフト) |
値xをyだけ右にシフトする。左には最上位のビットと同じ値が入る。従って、2の-y乗を行うことができる。 |
x>>>y(論理右シフト) |
値xをyだけ右にシフトする。左には0が入る。 |
&(AND) |
演算するビットが両方とも真(1)のときだけ1となる。 |
|(OR) |
演算するビットのうち片方でも真(1)のときは1となる。 |
^(XOR) |
演算するビットが異なる場合のみ1となる |
!(NOT) |
否定。偽→真、真→偽となる。 |
∼(ビット反転) |
すべてのビットを反転させる。 |
最終更新:2011年04月02日 12:52