C语言问题,为什么return-1是255?

发布网友

我来回答

2个回答

热心网友

需要了解整数在计算机中的编码
,对于整数在计算机中一般是原码、反码、补码三种编码方式,以-1为例。选择8位的二进制数来表示:
-1的原码
10000001
//最高位为符号位
-1的反码
11111110
//符号位不变,各位求反
-1的补码
11111111
//符号位不变,反码加1
所以,当使用unsigned
char
即无符号整数时,-1用补码表示即1111
1111,十六进制表示为0xff
,十进制表示即为255。

热心网友

计算机中,有符号数用补码(按位取反加1)表示,其最高位表示符号(0正1负);-1的补码(1111
1111)对应的无符号数就是255

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com