Javaでは、なぜ16進数は、小数点以下の番号の後には0xFFが否定対応-256それを?

int型の数= 0xFFで。

リテラルプログラム中の変数を保存しない手段が、直接特定の番号または値文字列として表すことができます。

0xFFでは、整数リテラルで、デフォルトのタイプは、整数リテラルintです。

私たちはJavaで、int型は、基本データ型の4バイト(32ビット)であることを知っています。

だから、0xFFを実際に完全な言葉遣いは0x000000FFです。


 

図4は、バイナリ進数を表すことができ、次いで  0x000000FFが バイナリ表現に変換されます。

0 0000 0000 1111 1111 000 0000 0000 0000

ビット単位:

  〜数

=〜0xFFを

=〜0x000000FF

= 0xFFFFFF00【H】= 1111 1111 1111 1111 1111 1111 0000 0000【B】。

最初の符号ビットであり、1は負の値を示し、これがなければならない変換、それが表現したい実際の値を得るために、元のコードを補完するネガティブ型からの変換。


 

元のコードを補完するから変換され、反転し、元のコードを取得するために逆に1を引きました。

最初のステップ、最下位ビットから1を引きました。

1 1,111,111,111,111,111,111補体1111 0000 [0000] --1 =  1 1,111,111,111,111,111,111コード1110111111111 [トランス]

符号ビットに加えて第二工程、反転。

1 0,000,000,000,000,000,000 0001 0000 0000] [元のコード

元のコードを取得した後、その値算出部は、得:100,000,000 [B] = 2 。8  [Q] = [Q] 256

プラス符号ビット結果は次のとおりです。-256

したがって、進数0xFFの対応する10進数-256後にネゲートされます。


 

要約すると、ここでの知識の3つの関連しています。

まず、Javaで、デフォルトのタイプは、整数リテラルのint、それは32ビットで構成されています。

第二に、二進数〜ビット単位、すなわち0〜1のビット単位表現、1~0;

第二は、コンピュータシステムにおいて、符号が数字コードデータが補体およびストレージの形で表されているビットがあります。自体を補完それが正である、負の補数コードは1で最下位桁の前に、元のコードに変換され、次いで符号以外誰もが、元のコードが最終的に得られる反転ビット。

おすすめ

転載: www.cnblogs.com/buildnewhomeland/p/12129834.html