(b <= 0xf)

来源:4-1 字节流之文件输入流FileInputStream-1

静以修身淡以明志

2015-12-22 12:26

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)这是什么意思???

写回答 关注

5回答

  • 慕粉3722587
    2017-10-20 17:47:40

    16进制小于16的就一位字节,所以在前面补0,大于15的就两个字节,所以以0xf来做比较,0xf也就是15

  • 团cn_0
    2016-02-03 11:01:09


    in.read()每次只读取一个字节,是8位,这八位其实是8个2进制,把这8位2进制换成2位16进制的数字,11111111等同于ff,而0xf只占用了16进制中的一位,所以用嵌套if语句完成多填1位0。

    如果繁星能来...

    16进制都只有两位?

    2016-05-17 14:45:12

    共 2 条回复 >

  • 天涯蝶舞
    2016-01-07 21:40:18

    0x表示16进制,16进制用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F来表示,一个字节用16进制表示就一个两位或一位的数,例如a,0f,af,ae,3b,e,c等,其中一位的可以补0,例如0a,0e,0c。当只有一位时,f就说最大的,所以只要比16进制的f小或相等,一个字节转换为16进制就一定只有一位,这个时候就需要对其补0才能使两位数,所以表示为b <= 0xf

  • 已过期
    2015-12-22 13:09:21

    b<=15

    saber1...

    我也觉得应该是b<=15,因为b是int型,10进制

    2016-01-13 14:24:53

    共 1 条回复 >

  • _潇潇暮雨
    2015-12-22 13:05:21

    16进制以0x开头,表示的是十进制的15

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题