为什么写了if(b[i]<=0xf);
System.out.print("0");这个条件语句,
我输出了的ff, d6 ,d0 ,会多打印出一个0,变成0ff, 0d6, 0d0
我来回答。
b[i] <= 0xf是用来判断是否需要加0,也就是高四位是否有1出现,但是这个判断条件不对。比如0xff输出占两位,但是在数值上却是小于0xf的。所以争取的补0条件应为:
if (b[i] & 0xf0 == 0)
那是因为你if这行加了一个分号。相当于if 条件 空执行 加分号 。后面的SYSO已经不受IF约束,为每次都运行的语句了。IF只能控制后面紧跟的花括号中的内容,或者是紧跟的一个分号前的内容