当类型是char型,凡是0x80以上,即最高位是1的数据,通过"%02x"打印后会在前面填充6个‘f’,即变成ffffff87这样的数据。

       而换成unsigned char型则打印正常。

       但是在ARM的linux上之前没有遇到这样的问题。看来对于平台还有编译器还是很有关系的,但是现在的疑惑就是%02x其中的2代表只有2位数据,但是现在却打印了8位,诡异。

Logo

更多推荐