三位數(shù)字出現(xiàn)
if(buf[i]<=0xf) ????????System.out.print("0"); ???? System.out.print(Integer.toHexString(buf[i]&0xff)+"??"); if(count++%10==0) System.out.println(); ???? }
為什么會出現(xiàn)0b7 ?0c5 ?0c8 ?0eb ?0d7 ?數(shù)字
if(buf[i]<=0xf) ????????System.out.print("0"); ???? System.out.print(Integer.toHexString(buf[i]&0xff)+"??"); if(count++%10==0) System.out.println(); ???? }
為什么會出現(xiàn)0b7 ?0c5 ?0c8 ?0eb ?0d7 ?數(shù)字
2017-03-23
舉報(bào)
2017-03-23
看看你的項(xiàng)目的編碼格式吧,我的是utf-8的,這樣也是三位,視頻里面的項(xiàng)目編碼格式是GBK的
2017-07-30
這個(gè)應(yīng)該是由于高位是1開頭的,默認(rèn)負(fù)數(shù),所以buf[i]<=0xf是一定成立的,要改成(buf[i]&0xff)<0xf才能正確,并不是編碼的問題
2017-04-16
會不會是另一個(gè)原因?debug一下,當(dāng)進(jìn)行比較大小的時(shí)候,高位是1開頭的,默認(rèn)負(fù)數(shù),在計(jì)算時(shí)自然小于0xf,但實(shí)際并不小于,此時(shí)如果和0xff相與結(jié)果還會是正常的,因?yàn)樨?fù)數(shù)的原因所以那兒被認(rèn)為是小于16,所以加了個(gè)0,變成3位的了。
舉例來說 某個(gè)1開頭的字節(jié),你按32位000000000000000000000000,1xxxxxx假設(shè)的。。正數(shù)是100多,只算負(fù)數(shù)就是-49。當(dāng)系統(tǒng)用字節(jié)進(jìn)行比較的時(shí)候,應(yīng)該直接拿了-49的值去比較了。。此時(shí)因?yàn)槲覀儗懙某绦蚓蜁谇懊娑嗉恿艘粋€(gè)0.
2017-03-23
默認(rèn)gbk 可行,大概是這個(gè)原因吧