トップページ > コンテンツ > プログラミング入門 > Java入門 > Javaの基本まとめ > Javaのビット表現

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