比如128 到-128
1000 0000原
1111 1111 反
1000 0000补
原码反码补码都有什么作用?
2条回答 默认 最新
少泽有什么坏心思捏 2022-05-02 01:20关注一、原码、反码、补码 都是什么意思
注意:如果源码是正数,原码,反码,补码,都是他本身 (下方是为了方便理解才这样写的)原码:将一个任意进制数转换为二进制数,就是原码
比如: 10(10)->1010(2) 其中1010就是源码反码:就是原码各位取反
比如:1010(2)各位取反变成 0101(2)就是反码补码:就是反码+1
比如上面的0101(2)+1=0110(2) ,得到的0110就是补码你现在已经了解了原,反,补码的概念
接下来我们了解原,反,补码怎么运行的用1个字节(8比特)表示 两个十进制数 15 和 -15源码
100(10)=00001111(2) -100(10)=10001111(2)其中最高位是符号位
这时候数8位bit的表示范围是
11111111~011111111 就是-127~+127 最高位是符号位,1表示负,表示正反码
借用上面的数据 100(10)=00001111(2) -100(10)=10001111(2)取反之后
100(10)=00001111(2)->00001111 正数不变 -100(10)=10001111(2)->11110000 负数除符号位各位取反这时候数8位bit的表示范围是
01111111~111111111 就是+127~-127 最高位是符号位,1表示负,表示正我们发现
10000000(2)和00000000(2) 都表示0,那么的话就会浪费一个表示数值那么就引进补码的概念
同样正数不变,负数补码是反码+1100(10)=00001111(2)->00001111->00001111 正数不变 -100(10)=10001111(2)->11110000->11110001 负数的补码是反码+1这时候数8位bit的表示范围是
01111111~10000000 就是+127~-128 其中10000000(2)也就是原来的-0把它表示为-128引入补码的还有一个原因
它可以将减法转换为加法
比如14->补码->00001110 -15->补码->11110001相加
14+(-15)=00001110+11110001按位相加
00001110 11110001 ------------------- 11111111就得到-1
验证一下:
十进制数:-1 原码->10000001 反->11111110-> 补->11111111也是学生一枚,如果有什么不好的地方请批判指正谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报