因为b是个指向char的指针
他所指的内容是1个字节
也就是说
第一个*b的值为0xF7
第二个为0x07
但是你在输出的时候要让他扩展到4B,由于char长度不够,所以他需要向左扩展,当最高位是1时,全部扩展1,
否则为0
所以,第一个结果就是FFFFFFF7
因为F7的最高位是1,
实际上,只要从右边数第二个数>=8,前六个数肯定是F,否则肯定是0
比如
a
=
0xABCDEF87
则
输出为FFFFFF87
a
=
0xABCDEFA7
则
输出为FFFFFFA7
a
=
0xABCDEF17
则
输出为00000017
a
=
0xABCDEF77
则
输出为00000077