char 字符范围

有如下代码:

    char Char_a = -129;   printf("%d\n",Char_a);

 求输出结果。
运行后输出127 。
看了这个结果没什么想法,不知道这么计算出来的。看了下C语言和网上资料总结如下:
教程上有-1的补码表示过程如下:
负1原码:10000001
负1反码:11111110
负1补码:11111111
这样算其实不正确,实际计算机按如下操作计算负1补码:
1原码:00000001
发现是负数做两步:
1反码:11111110
1补码:11111111(-1)
计算机用负数的绝对值的补码表示这个负数

这样既可以解释-129了,如下:

129原码:10000001
129反码:01111110
129补码:01111111(+127)
 这样也可以解释char 范围从-128~127
-128为什么表示成10000000
128原码:10000000
128反码:01111111
128补码:10000000(-128)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值