目录
本文主要针对以上学习内容,进行思考与总结。
1. 溢出的概念
溢出主要是针对有符号数的加减,例如8位有符号的2进制数,表示的范围是-128~127,当数据的值太大而无法使用可用的数据格式表示时,就会溢出。如果大于这个范围,就是上溢出,如果小于就是下溢出。
2. 溢出之后会有什么影响呢?
例如下图,一个n位的二进制数,最高位为符号位,那么能表示的正数位n-1个1,也就是,再增大1的话最高位变成1,后面的n-1位全为0,但是表示的是-0.就是说从最大数+1,反而得到了最小的数。
3. 溢出发生在什么情况下?
溢出一般发生模拟-数字转换的结果中,或者算法运算加减等中。
4. 处理方式
主要有两种,一是回卷,二是饱和。
回卷: 当数字扩展超过了范围的顶部,它就回卷到范围的底部。反之亦然。一旦出现回卷,信号将发生明显错误。
饱和:当数字扩展超过范围时,将其饱和到最大范围值。例如,8位有符号二进制的范围为-128~127,当表示的数为132时,不会回卷到-124,而是饱和到127,这样信号会发生失真。