三位數字出現
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 ?數字
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 ?數字
2017-03-23
舉報
2017-03-23
看看你的項目的編碼格式吧,我的是utf-8的,這樣也是三位,視頻里面的項目編碼格式是GBK的
2017-07-30
這個應該是由于高位是1開頭的,默認負數,所以buf[i]<=0xf是一定成立的,要改成(buf[i]&0xff)<0xf才能正確,并不是編碼的問題
2017-04-16
會不會是另一個原因?debug一下,當進行比較大小的時候,高位是1開頭的,默認負數,在計算時自然小于0xf,但實際并不小于,此時如果和0xff相與結果還會是正常的,因為負數的原因所以那兒被認為是小于16,所以加了個0,變成3位的了。
舉例來說 某個1開頭的字節,你按32位000000000000000000000000,1xxxxxx假設的。。正數是100多,只算負數就是-49。當系統用字節進行比較的時候,應該直接拿了-49的值去比較了。。此時因為我們寫的程序就會在前面多加了一個0.
2017-03-23
默認gbk 可行,大概是這個原因吧