c语言整形提升(自己写着玩的)

文章讨论了在C语言中,char类型的变量在存储负数和整数时的原码表示。当char类型为负数时,如-1,其二进制表示在整型提升后会添加额外的1,形成补码;而正数(这里以-1为例)在整型提升后保持原样,符号位不变,但其余位扩展为0。最终,-1在不同char类型的输出结果为:signedchar和unsignedchar的打印值分别为-1和255。
摘要由CSDN通过智能技术生成

例:❶char a=-1

11111111→11111111111111111111111111111111,变为原码输出

❷signed char b=-1

11111111→11111111111111111111111111111111,变为原码输出

❸unsigned char c=-1

11111111→00000000000000000000000000011111111,符号位是0,为整数,直接输出

●输出printf("a=%d,b=%d,c=%d",a,b,c):

a=-1,b=-1,c=255

总结:也就是说负数整形提升前面补1,整数整形提升前面补0,然后再把补码变为原码输出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值