1.オリジナルコード
最上位ビットは符号ビット (0 は正を表し、1 は負を表します) として使用され、残りのビットは値そのものの絶対値 (2 進数で表現) を表します。
簡単にするために、整数を表すのに 1 バイトを使用します。
+7 の元のコードは: 00000111
-7 の元のコードは次のとおりです: 10000111
2.リバースコード
数値が正の場合、その補数は元のコードと同じです。数値が負の場合、符号ビットは 1 で、残りのビットは元のコードの反転になります。
簡単にするために、整数を表すのに 1 バイトを使用します。
+7 の補数は次のとおりです: 00000111
-7 の補数は次のとおりです: 11111000
3. 補完コード
補数コード: 数値が正の場合、その元のコード、補数コード、および補数は同じです。数値が負の場合、符号ビットは 1 で、残りのビットは元のコードの反転と全体です。数値に1が加算されます。簡単にするために、整数を表すのに 1 バイトを使用します。
+7 の補数は次のとおりです: 00000111
-7 の補数は次のとおりです: 11111001
負の数の補数が与えられた場合、それを 10 進数に変換します。
1. まず、私はあなたに反論します。
2. 10 進数に変換します。
3. 負号を加算して 1 を減算します。
例えば:
11111010、最上位ビットは 1 で、これは負の数です。まず各ビットを否定して 00000101 を取得し、それを 10 進数に変換して 5 を取得し、負の符号を追加して -5 を取得し、次に 1 を減算して -6 を取得します。
int a=232; を byte 型にキャストすると負の数になるのはなぜですか? ? ?