繁体   English   中英

C中的有符号二进制表示

[英]Signed binary representation in C

看完这个 ,二进制常量可以写成地方二进制在GCC像这样:

int foo = 0b1010;

并且期望用printf("%d", foo)打印出10 printf("%d", foo)

但是,使用关键字signed附加(尽管int默认签名),不会影响GCC对0b1010的解释(应为-6 )。 为什么会这样,是否可以签署二进制常量?

默认情况下,数字常量的类型为int 常数0b1010也属于这种类型。

假设int是系统上的4个字节,这相当于写入0b00000000000000000000000000001010 假设2的恭维表示,则不设置符号位,因此这不是负数。 其值为十进制10。

如果您改为将0b11111111111111111111111111111010作为值, 0b11111111111111111111111111111010 -6。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM