char tmp[32] = {
0x10,0x1c,0x12,0x00,0x24,0x00,0x08,0x10,
0xe2,0x01,0x05,0x40,0x00,0x00,0x44,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
以16进制进行打印结果:
001c120024000810
ffffffe201054000004400
0000000000000000
0000000000000000
从哪里多出的ffffff?
下面数组进行打印:
unsigned char tmp[32] = {
0x10,0x1c,0x12,0x00,0x24,0x00,0x08,0x10,
0xe2,0x01,0x05,0x40,0x00,0x00,0x44,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
结果:
101c120024000810
0201054000004400
0000000000000000
0000000000000000
原因很简单,那就是符号问题。