目录
1. 在计算机进行加减法运算时,需要将十进制的数字转换为二进制来进行补码运算。
一、加减法补码的运算规则
1. 在计算机进行加减法运算时,需要将十进制的数字转换为二进制来进行补码运算。
【X+Y】补码=【X】补码+【Y】补码
补码和等于X补码与Y补码的和
【X-Y】补码=【X】补码+【-Y】补码
减法运算可以转化为加法运算,即补码和等于X补码与-Y补码的和
需要注意:
- 补码表示的两个数进行运算的得到的结果也是补码。
- 符号位和数值位一样参与运算。
2. 原码 反码 补码
机器数:一个数在计算机中的二进制表示形式叫做这个数的机器数。
机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。
真值:机器数的第一位是符号位,后边的才是真正的数值。
原码:原码是符号位加上真值的绝对值。
反码:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
补码:正数的补码是其本身,负数的补码码是其反码加1。
【+1】=【0000 0001】原码=【0000 0001】反码=【0000 0001】补码
【-1】=【1000 0001】原码=【1111 1110】反码=【1111 1111】补码
二、 溢出处理
1. 溢出的定义
在计算机存储时,补码的表示是有一定范围的(-2^n~2^n-1),当运算结果超出机器数所能表示的范围时或运算结果与最高位产生的进位不同时,会自动丢弃。
2. 溢出的产生
两个异号数相加或两个同号数相减时不会溢出
两个同号数相加或两个异号数相减时可能会溢出
3. 溢出的判断方法
(1)根据符号位进行判断
当符号相同的两数相加时,如果结果的符号与加数不相同,则为溢出。
fa、fb表示两个操作数的符号位,fs表示运算结果的符号位,fs和fa、fb不一致则发生了溢出。
(2)根据符号位进位和数值位最高位进位来判断
Cf: fa与fb直接参与运算产生的进位
C: 数值最高位产生的进位
(3)双符号位进行判断
fs1、fs2表示两个操作数的双符号位,正数的双符号位为00,负数的双符号位为11,双符号位参与运算,当fs1不等于fs2则溢出。
在一般计算中我们采用第三种方法即可,第三种方法形式简单便于记忆。