亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

(b <= 0xf)

while((b = in.read())!=-1){
???if(b <= 0xf){
????//單位數前面補0
????System.out.print("0");
???}
???System.out.print(Integer.toHexString(b)+"? ");
???if(i++%10==0){
????System.out.println();
???}
??}

(b <= 0xf)這是什么意思???

正在回答

5 回答

16進制小于16的就一位字節,所以在前面補0,大于15的就兩個字節,所以以0xf來做比較,0xf也就是15

0 回復 有任何疑惑可以回復我~


in.read()每次只讀取一個字節,是8位,這八位其實是8個2進制,把這8位2進制換成2位16進制的數字,11111111等同于ff,而0xf只占用了16進制中的一位,所以用嵌套if語句完成多填1位0。

0 回復 有任何疑惑可以回復我~
#1

如果繁星能來到我身邊

請問8位2進制換成2位16進制的數字,是什么意思?
2016-05-17 回復 有任何疑惑可以回復我~
#2

如果繁星能來到我身邊

16進制都只有兩位?
2016-05-17 回復 有任何疑惑可以回復我~

0x表示16進制,16進制用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F來表示,一個字節用16進制表示就一個兩位或一位的數,例如a,0f,af,ae,3b,e,c等,其中一位的可以補0,例如0a,0e,0c。當只有一位時,f就說最大的,所以只要比16進制的f小或相等,一個字節轉換為16進制就一定只有一位,這個時候就需要對其補0才能使兩位數,所以表示為b <= 0xf

5 回復 有任何疑惑可以回復我~

b<=15

1 回復 有任何疑惑可以回復我~
#1

saber1130

我也覺得應該是b<=15,因為b是int型,10進制
2016-01-13 回復 有任何疑惑可以回復我~

16進制以0x開頭,表示的是十進制的15

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號