2014-09-20 58 views
0

我在玩弄如何處理來自輸入的十六進制數字的字節。數據是一個十六進制: 0x022DA822 == 10001011011010100000100010.後我運行下面的代碼:位屏蔽java,只顯示最後6個十六進制的位數

byte mask= (byte) data; 

掩模將= 100010,只有那些最後比特。它怎麼只顯示十六進制中的最後6位或22位?

它是否默認屏蔽前20位?

+0

「0x022DA822」的十進制表示是什麼? – 2014-09-20 01:00:13

+0

36546594 =十進制表示 – Tyson 2014-09-20 01:00:34

+0

「byte」的數據範圍是多少? – 2014-09-20 01:00:44

回答

0

您的演員陣容導致數據丟失。一個字節可以容納(你猜對了),一個字節的數據。因此一個字節的範圍是[-128,127]。請注意,最重要的位保留爲符號位。所以基本上當你說:(字節)數據時,你正在將你的十六進制數據轉換成byte類型的變量,它的範圍比你的十六進制字符串小。因此只有數據的最後一個字節可以存儲在字節中。

相關問題