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
原因很简单,那就是符号问题。