zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

计算机的原反补码

计算机 补码
2023-09-14 08:58:29 时间
         *  计算机内:
         *     原码:计算机中对数字的二进制定点表示方法,原码表示法在数值前面增加了一位符号位(即最高位为符号位):正书该位为0,负数该位为1,其余位表示数值的大小,0有两种表示:+0 和 -0
         *     反码:反码是数值存储的一种,多应用于系统环境设置,反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
         *     补码:在计算机系统中,数值一律用补码来表示和存储,补码表示法规定:正数的补码与其原码相同,负数的补码是在其反码的末位加1

补码的加法运算所依据的基本关系为:
[x]补+ [y]补= [x+y]补
补码减法所依据的基本关系式:
[x-y]补 =[x+(-y)]补= [x]补+ [-y]补

求原反补码&计算机做加法的例子:

15 - 27的过程:
         *  转二进制:00001111  -00011011
         *  得到原码:
         *      00000000 00000000 00000000 00001111  10000000 00000000 00000000 00011011
         *   得到反码:
         *      00000000 00000000 00000000 00001111  11111111 11111111 11111111 11100100
         *   得到补码:
         *      00000000 00000000 00000000 00001111
         *      11111111 11111111 11111111 11100101
         相加得到:  11111111 11111111 11111111 11110100
         *    转反码:
         *      11111111 11111111 11111111 11110011
         *    转原码:
         *      10000000 00000000 00000000 00001100
         *    转二进制:
         *      - 1100
         *    转10进制:
         *      - (8 + 4) = -12

 

参考链接:http://www.cnblogs.com/flowerszhong/p/6798781.html

 

 

这里注意:

  为什么byte的最小值是-128在使用这种公式法补码的时候无法得到信服的解释。补码就是我们数据在计算机中存储的形态,我们着里得到的只是公式,补码的真正意义看我的另一篇博客:补码的来源以及为什么byte的最小值是-128

 

有疑问地方欢迎留言。