您的位置:首页 > 理论基础

关于该死的原码和补码的关系 以及为什么计算机中使用补码作为运算的码种

2015-01-24 13:23 411 查看
看文章之前,两点提示:第一,不要管反码,以及反码和补码的关系 第二,忘掉符号位,没有符号位这个东西。

在计算机中:

正数的表示方式简单来讲就是原码

具体为二进制 比如7 0000--0111

负数的表示方式就是补码(补码的特征。第一位一定是1)

具体为该数的绝对值的按位取反然后加一 比如-7 第一步,把上面那个二进制数按位取反 1111--1000 第二步+1 1111--1001

那么 已知一个数的补码 怎么知道这个数的十进制数字呢? 首先看到补码那么他就毫无疑问是一个负数 那么同样将这个数全部按位取反然后加一 比如1101--0110 这是一个补码,因为首位是1。 第一步 :0010--1001 第二步:0010--1010 转换为十进制为42 然后补码都是负数 所以为 -42

那么为什么要使用补码来进行计算机的计算呢?

计算机里面大多数都是加法运算器,做的减法操作都是加上一个负数 比如 1-2=1+(-2)

那么这时,如果我们用原码操作0001

+1010

1011

答案是 -3?!

如果是补码呢 0001

+1110

1111

答案是-1

这其中的不同就是一个可以直接把符号位参与进入运算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: