Java SE(24)補足-元のコード、逆コード、補完コード

目次

 

マシン番号と真理値

元のコード、補完、補完

コンピューターでは、負の数は正の値の補数で表されます


マシン番号と真理値

マシンの数

コンピューター内の数値の2進表現はこの数値のマシン番号と呼ばれます。マシン番号は符号付きです。コンピュータは数値最上位ビットを使用して符号格納します。正の数0負の数1です。

例:10進法の数値+3、コンピューターのワード長は8ビット、2進法に変換すると00000011です。-3の場合は10000011です。

次に、00000011と10000011はマシンの数です。

真理値

最初のビットは符号ビットであるため、マシン番号の正式な値は実際の値と等しくありません。したがって、区別のために、真の値に対応する署名された機体番号がされる機体番号の真の値と呼ばれます。

例:0000 0001 = +000 0001 = +1の真の値、1000 0001 = –000 0001 = –1の真の値

元のコード、補完、補完

元のコード

元のコードは、符号ビットに絶対値の真の値加えものです。つまり、最初のビットで表されるシンボル、残りのビットを表す値です。

例:8ビットバイナリの場合:

       [+1]オリジナル= 0000 0001

       [-1]オリジナル= 1000 0001

       最初のビットは符号ビットです...

最初のビットは符号ビットであるため、8ビットの2進数の範囲は[1111 1111、0111 1111]、つまり[-127、127]です。

補体

正の数の逆数はそれ自体です。

負の数の逆数コードは元のコードに基づいており、符号ビットは変更されず、残りのビットは逆になります。

例:[+ 1] = [00000001]オリジナル= [00000001]リバース

       [-1] = [10000001]オリジナル= [11111110]アンチ

補体

正の数の補数はそれ自体です。

負の数の補数は元のコードに基づいており、符号ビットは変更されず、残りのビットは反転され、最後に+1になります。(つまり、逆コードに基づいて+1)

例:[+ 1] = [00000001]オリジナル= [00000001]リバース= [00000001]補数

       [-1] = [10000001]元の= [11111110]逆= [11111111]補数

変換関係:

コンピューターでは、負の数は正の値の補数で表されます

例:6はint整数100、エンコーディングは次のとおりです。0000000000000000 00000000 00000110;

                                            反転:11111111 11111111 11111111 11111001

                                              追加1:11111111 11111111 11111111 11111010

public class FuShu {
	public static void main(String[] args) {
		System.out.println(Integer.toBinaryString(-6));
	}
}

動作結果:

おすすめ

転載: blog.csdn.net/wqh101121/article/details/112624126