胡东华老师第三周讲义


胡东华老师第三周讲义

溢出: 在定点数机器中,数的大小超出了定点数能表示的范围,叫溢出。

  • 无符号数:最高位产生了进位就是发生了溢出。进位的位置标记为CY

  • 有符号数:最高位和次高位的仅为是否一致,一致的话没有溢出,不一致的话有溢出。

可以使用异或来判断有符号数的进位方法。异或的结果标记为OF

image-20210914152514367

判断溢出?人和机器谁来执行。

image-20210914154310038

作为一个无符号数,他是合理的,但是作为一个有符号数,他又是溢出的。

所以计算机引入了两个标志位CY进位标记位 和 OF溢出标记位 ,剩下的由人设计算法程序来实现溢出的判断。

同时人们在设计程序的时候不会出现一个数字不知道是有符号数还是无符号数的情况,因为在声明变量的时候计算机的指令集会事先定义好数据的类型,不同的操作指令集会有不同的数据定义方法。

作为一个人类,如何判断数据是否有溢出?

这种方法更有利于做出快速的判断

image-20210914155415505

加法器的简单实现

  • 基本的逻辑门电路

image-20210914162339050

image-20210914163540384

全加器FA

相当于是每一位的的数字都进行一个异或运算,结果为si 两个加数为Ai 和Bi 上一位的进位是Ci 那么计算机加法的运算法则可以概括为image-20210914172316283

那么本位的加法进位是Ci+1 可以概括为image-20210914172412303

那么全加器的实现可以得出

image-20210914163624734

image-20210914172516053

image-20210914171918194