peppapig 发表于 2019-1-24 11:25:12

求助有符号数的问题

这里有一个关于有符号数的问题,大家帮我看看?
王爽的课本P215说
10000001B 可以看作无符号数129,也可以看作有符号数-127。
有符号数的符号是在这个数的补码上的,难道不应该直接在这个数1之上,有符号数的话是-1?
1和127是不一样的,如果8位的话,127就是-1。

行客 发表于 2019-1-26 08:28:10

这是一个8位宽度的单字节。按16进制来看,
无符号数:
0 1 2 3 4 ......FF(10进制255)
有符号数:
整数:0 1 2 3 4 5 6 7 ...7F(10进制127)
负数:-1 -2-3-4 -5-6-7 -8...-128
   FF FE FD FC FB FA F9 F8 F7 F6 F5 F4.........80

那么,无符号数10进制129就是10进制127(16进制的7F)后的2位,第1位是16进制的80,第2位是16进制的81。即10进制129是16进制81。转换为二进制为10000001B。
而有符号数,10进制的-128是16进制的80,16进制的80下一位是16进制的81,也就是有符号数的10进制的-127。

因此,是正确的。
页: [1]
查看完整版本: 求助有符号数的问题