为了账号安全,请及时绑定邮箱和手机立即绑定

4-2字节流的操作实例

4-2字节流的操作实例

慕粉2133214591 2016-12-13 20:25:13
为什么我的运行结果还有3位数的呀  求教
查看完整描述

1 回答

已采纳
?
慕粉3291149

TA贡献71条经验 获得超52个赞

正常现象 莫慌,  你想一下  buf[i] <=  0xf 时  前面加0 

  0xf表示00001111(转化为十进制为15),  

   假设有一个元素  0xff      0xff表示1111 1111(转化为十进制表示-1) -1明显小于15对不对 

所以 0xff<0xf  输出时前面加0 就是 0ff

查看完整回答
反对 回复 2016-12-14
  • 慕粉2133214591
    慕粉2133214591
    3Q 很有帮助
  • 慕粉2133214591
    慕粉2133214591
    public static void printHex(String fileName) throws IOException { //把文件作为字节流进行读操作 FileInputStream in = new FileInputStream(fileName); int b;//用来读数据 int i = 1; //用来计数 读到10字节换行 while ((b = in.read()) != -1) { if (b <= 0xf) System.out.print("0"); System.out.print(Integer.toHexString(b) + " "); if (i++ % 10 == 0) System.out.println(); } in.close(); } 这个为什么就没有出现你说的那种情况那 ???
  • 慕粉3291149
    慕粉3291149
    因为b是int型的,32为 例如: 读取b = 0xff 用二进制表示为00000000 00000000 00000000 11111111(转化为10进制为255) 肯定大于15啊 上述例子中 buf[i]是byte类型的,有8位 用二进制表示为 1111 1111 (转化为10进制为-1) 不一样的,因为 byte和Int表示的范围不同
点击展开后面1
  • 1 回答
  • 0 关注
  • 1252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信