2016-06-25 170 views
-4

我收到這樣的問題:鑄造一個字節十六進制

enter image description here

答案是ffffff80, 但我不明白他們是如何得到它.. 爲什麼鑄造整數調用2的補充?

+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)