C符号是扩展还是零扩展常量?

时间:2011-07-10 16:36:25

标签: c

C符号是否扩展常量或零扩展? 例如:

int a = 123 & 0x3

是0x3零扩展还是符号扩展? 另外一般来说,什么东西在C中是零扩展的,什么是符号扩展?

谢谢!

2 个答案:

答案 0 :(得分:6)

C标准没有规定实现是使用2的补码,1的补码还是其他。因此,负值的表示也不是强制性的。

但是,在您的特定情况下,0x3是一个正值,因此符号扩展和零扩展是相同的!

答案 1 :(得分:0)

就符号扩展而言,它取决于值是有符号还是无符号。

但是,在您的示例中,不会设置高位,因此无关紧要。结果将是零扩展。