输出什么?

该博客探讨了C语言中不同类型的整数在存储和输出时的行为。通过示例展示了有符号char和无符号char在存储-1这个值时的原码、反码和补码转换,以及输出时如何进行整型提升。重点讨论了有符号和无符号数在取后8位及输出时的差异,导致最终结果的不同。
摘要由CSDN通过智能技术生成

int main()

{

char a=-1;

1000 0000 0000 0000 0000 0000 0000 0001    原码

1111  1111  1111  1111 1111  1111  1111  1110     反码

1111  1111  1111  1111 1111 1111  1111   1111     补码

取后8位  1111 1111

输出时整型提升   1111 1111 1111 1111 1111 1111 1111 1111    此时仍为补码

                              原码得到-1

  

signed char b=-1;   和上面的一样

unsigned char c=-1;

补码取后八位 1111 1111

输出时因为是无符号数得到  0000 0000 0000 0000 0000 0000 1111 1111  

原码也是他  得到255  

printf("%d %d %d",a,b,c);

return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值