* 计算机内: * 原码:计算机中对数字的二进制定点表示方法,原码表示法在数值前面增加了一位符号位(即最高位为符号位):正书该位为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
原文:https://www.cnblogs.com/aigeileshei/p/10422529.html