本帖最后由 hgjinwei 于 2015-7-2 09:12 编辑
这里涉及到了两个问题:
1、c,x均为带符号数,移位采用算术移位,即:
D, D<<1,D>>1
A1(10100001), 42(01000010),D0(11010000)
A1A1(1010000110100001), 4342(0100001101000010), D0D0(1101000011010000)
2、printf中,不定参采用int型对齐输入,%x,%d 采用int型提取参数,signed char型的c被强制转化为int型,即:
D, D<<1,D>>1
FFA1(1111111110100001), 0042(0000000001000010), FFD0(1111111111010000)
A1A1(1010000110100001), 4342(0100001101000010), D0D0(1101000011010000)
注:以上采用16位分析,int型为16位带符号整型。
|