六角

2016-06-25 13 views
-4

にバイトを鋳造私はこの質問を受け取っ:六角

enter image description here

はなぜ整数にキャストしないことは2のを起動します。..答えは 、ffffff80だったが、私は、彼らはそれを得た方法を理解していませんでした補体?

+0

答えがどういう意味ですか?コードは3行を出力します。 – user2259824

+0

CPUは計算に2の補数を使用し、Javaはそれらの計算を使用するためのより使いやすい方法を提供します。 –

答えて

1
a: 0x11 -> 17(dec) -> 10001 -> bitshift by 7 -> 100010000000 -> 0x880 -> 2176(dec) 
b: (byte) a -> 10000000 -> 0x80 -> 128(dec) 
c: (char) b -> char is signed, byte is unsigned -> 0x80 -> -128(dec)