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

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

三位數字出現

if(buf[i]<=0xf)
	????????System.out.print("0");
		????		
			System.out.print(Integer.toHexString(buf[i]&0xff)+"??");
			
			if(count++%10==0)
				System.out.println();
????	}

為什么會出現0b7 ?0c5 ?0c8 ?0eb ?0d7 ?數字

正在回答

4 回答

看看你的項目的編碼格式吧,我的是utf-8的,這樣也是三位,視頻里面的項目編碼格式是GBK的

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

這個應該是由于高位是1開頭的,默認負數,所以buf[i]<=0xf是一定成立的,要改成(buf[i]&0xff)<0xf才能正確,并不是編碼的問題

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

會不會是另一個原因?debug一下,當進行比較大小的時候,高位是1開頭的,默認負數,在計算時自然小于0xf,但實際并不小于,此時如果和0xff相與結果還會是正常的,因為負數的原因所以那兒被認為是小于16,所以加了個0,變成3位的了。

舉例來說 某個1開頭的字節,你按32位000000000000000000000000,1xxxxxx假設的。。正數是100多,只算負數就是-49。當系統用字節進行比較的時候,應該直接拿了-49的值去比較了。。此時因為我們寫的程序就會在前面多加了一個0.

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

默認gbk 可行,大概是這個原因吧

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

舉報

0/150
提交
取消

三位數字出現

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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