实例代码
(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)是什么意思呢?~
首先,了解什么是十六进制
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15)。
0x是16进制前缀,例0x1315,0x13F
现在解答问题
0x表示16进制,一个字节用16进制表示就一个两位或一位的数,例如a,0f,af,ae,3b,e,c等,其中一位的可以补0(一位的用0补足),例如0a,0e,0c。当只有一位时,F(F=15)就是最大的,所以只要比16进制的F小或相等,一个字节转换为16进制就一定只有一位,这个时候就需要对其补0才能使两位数,所以表示为b <= 0xf