问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

为什么写了b[i]<=0xf;输出0;这个条件语句,我输出了的ff, d6 ,d0 ,都变成0ff, 0d6, 0d0

为什么写了if(b[i]<=0xf);

System.out.print("0");这个条件语句,

我输出了的ff, d6 ,d0 ,会多打印出一个0,变成0ff, 0d6, 0d0

提问者:K_Muxs 2016-10-02 21:00

个回答

  • 绿色蝈蝈拜见
    2016-12-14 04:38:44

    我来回答。

    b[i] <= 0xf是用来判断是否需要加0,也就是高四位是否有1出现,但是这个判断条件不对。比如0xff输出占两位,但是在数值上却是小于0xf的。所以争取的补0条件应为:

    if (b[i] & 0xf0 == 0)

  • yjh不畏
    2016-10-04 13:49:57

    那是因为你if这行加了一个分号。相当于if 条件 空执行 加分号 。后面的SYSO已经不受IF约束,为每次都运行的语句了。IF只能控制后面紧跟的花括号中的内容,或者是紧跟的一个分号前的内容