C符号是否扩展常量或零扩展? 例如:
int a = 123 & 0x3
是0x3零扩展还是符号扩展? 另外一般来说,什么东西在C中是零扩展的,什么是符号扩展?
谢谢!
答案 0 :(得分:6)
C标准没有规定实现是使用2的补码,1的补码还是其他。因此,负值的表示也不是强制性的。
但是,在您的特定情况下,0x3
是一个正值,因此符号扩展和零扩展是相同的!
答案 1 :(得分:0)
就符号扩展而言,它取决于值是有符号还是无符号。
但是,在您的示例中,不会设置高位,因此无关紧要。结果将是零扩展。