Yi's Blog

《程序员教程(第三版)》学习笔记——04.机器数的运算

2012-07-25

在计算机中,可以只设置加法器,而减法运算可以转换为加法运算来实现。

机器数的加减运算

在计算机中,可以只设置加法器,而减法运算可以转换为加法运算来实现。

  1. 原码加、减法
    原码表示的机器数进行减法运算很麻烦,在计算机中很少被采用。
  2. 补码加、减法
    2.1 补码的加法运算法则:和的补码等于补码的和,即[X+Y]补=[X]补+[Y]补
    2.2 补码减法的方法是:差的补码等于被减数的补码加上减数取负后的补码。因此,在补码表示中可以将减法转换为加法,即[X-Y]补=[X]补+[-Y]补。
    2.3 由[X]补求[-X]补 的方法是:[X]补的各位取反(包括符号位),末尾加1 。
  1. 溢出及判定
    3.1 双符号位判决法。若采用两位表示符号,即00表示正好,11表示负号,则溢出时两个负号位就不一致了,从而可以判定发生了溢出。
    例如:正整数X=+1000001,Y=+1000011,用8位补码表示[X]补=00 1000001,[Y]补=00 1000011,[X]补+[Y]补=01 0000100 ,结果双符号位两位不同,则发生溢出。