Javaの蒋介石・ストレージ・負 - 正反コードおよび補体
正ヤード
私たちは、たとえば、intは4バイト、32ビットを占有し、int型
0は、メモリとして存在
00000000 00000000 00000000 00000000
図11は、メモリの存在である
00000000 00000000 0,000,000,000,001,011
反転
反転対応を取得することにより、ビット反転、
11で例えば
Nコード:00000000 00000000 0,000,000,000,001,011
アンチコード:1,111,111,111,111,111 1,111,111,111,110,100
補数
プラス1補数をもとに、あなたは補体を得ることができます。
また、一例として11で
Nコード:00000000 00000000 0,000,000,000,001,011
アンチコード:1,111,111,111,111,111 1,111,111,111,110,100
補完:1,111,111,111,111,111 1,111,111,111,110,101
これを得ることができる場合、メモリ内の表現-11(1,111,111,111,111,111 1,111,111,111,110,101)
あなたはバイナリが実際に負の数(最上位ビットが1である)であるかどうかを知りたい場合は
0xFFFFFFFFをする例として、
補完:1,111,111,111,111,111 1,111,111,111,111,111
アンチコード:1,111,111,111,111,111 1,111,111,111,111,110
Nコード:00000000 00000000 0,000,000,000,000,001
コードnが1であり、0xFFFFFFFFの(11111111 11111111 11111111 11111111)を表す-1。
その理由
唯一このように表現するために負の数によって追加されたデータに直接もたらされるだけ加数が利用可能なデータに計算を行うために、基礎となるハードウェアは、直接バイナリコードを添加することによって実現することができるからですまた、データの減算。
+ 5まで-11の例
-11:11111111 11111111 11111111 11110101
5:00000000 00000000 00000000 00000101
-6:11111111 11111111 11111111 11111010
アンチコード:1,111,111,111,111,111 1,111,111,111,111,001
Nコード:00000000 00000000 0,000,000,000,000,110