(b <= 0xf)
while((b = in.read())!=-1){
???if(b <= 0xf){
????//單位數(shù)前面補0
????System.out.print("0");
???}
???System.out.print(Integer.toHexString(b)+"? ");
???if(i++%10==0){
????System.out.println();
???}
??}
(b <= 0xf)這是什么意思???
while((b = in.read())!=-1){
???if(b <= 0xf){
????//單位數(shù)前面補0
????System.out.print("0");
???}
???System.out.print(Integer.toHexString(b)+"? ");
???if(i++%10==0){
????System.out.println();
???}
??}
(b <= 0xf)這是什么意思???
2015-12-22
舉報
2017-10-20
16進制小于16的就一位字節(jié),所以在前面補0,大于15的就兩個字節(jié),所以以0xf來做比較,0xf也就是15
2016-02-03
in.read()每次只讀取一個字節(jié),是8位,這八位其實是8個2進制,把這8位2進制換成2位16進制的數(shù)字,11111111等同于ff,而0xf只占用了16進制中的一位,所以用嵌套if語句完成多填1位0。
2016-01-07
0x表示16進制,16進制用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F來表示,一個字節(jié)用16進制表示就一個兩位或一位的數(shù),例如a,0f,af,ae,3b,e,c等,其中一位的可以補0,例如0a,0e,0c。當(dāng)只有一位時,f就說最大的,所以只要比16進制的f小或相等,一個字節(jié)轉(zhuǎn)換為16進制就一定只有一位,這個時候就需要對其補0才能使兩位數(shù),所以表示為b <= 0xf
2015-12-22
b<=15
2015-12-22
16進制以0x開頭,表示的是十進制的15