定点整数加减法
2017-09-23 18:59
246 查看
1.补码加法的性质:补码的和等于和的补码。
进行补码加法时,符号位参与运算。最后把超出的进位丢掉。
2.补码减法依然转化为加法来做。一个补码表示的数的相反数,可以“逐位取反再加一”得到。
3.溢出(overflow)检测:
(1)双符号位变形补码法。
设n位二进制有符号整数,则结果利用n+1位整数表示。
结果保留两位符号位(第n和n+1位),两个符号位不一致 ,则发生了溢出。符号位
有符号整数的符号位实际是使用的负权,故也影响数的绝对值大小。一般认为最高位是符号位。
(2)单符号位法。
此方法检测最高符号位和最高位产生的进位。是否溢出取决于结果符号位和进位的异或值。
本质上两种方法是一致的。
4.加法器的电路表示可以由n位全加器,n个异或门构成的控制电路(控制做加法还是减法,减法就用异或门全部取反,并给最低位全加器的进位输入设置为
5.C , Java会忽略溢出,并不会产生异常。如果需要在C中检测溢出,应当考虑实际结果的范围。
进行补码加法时,符号位参与运算。最后把超出的进位丢掉。
2.补码减法依然转化为加法来做。一个补码表示的数的相反数,可以“逐位取反再加一”得到。
3.溢出(overflow)检测:
正+正<0,或者
负+负>0,为溢出。有两种检测方法:
(1)双符号位变形补码法。
设n位二进制有符号整数,则结果利用n+1位整数表示。
结果保留两位符号位(第n和n+1位),两个符号位不一致 ,则发生了溢出。符号位
01则为正溢出,符号位
10为负溢出。因为“正+正”,两个加数第n位都不可能为1,最多只能在第n位得到1,因此符号位出现
01是正溢出。符号位
10同理。
有符号整数的符号位实际是使用的负权,故也影响数的绝对值大小。一般认为最高位是符号位。
(2)单符号位法。
此方法检测最高符号位和最高位产生的进位。是否溢出取决于结果符号位和进位的异或值。
本质上两种方法是一致的。
4.加法器的电路表示可以由n位全加器,n个异或门构成的控制电路(控制做加法还是减法,减法就用异或门全部取反,并给最低位全加器的进位输入设置为
1)和一个溢出检测的异或门构成。分析延迟,应该尽可能考虑可以并行的部分。
5.C , Java会忽略溢出,并不会产生异常。如果需要在C中检测溢出,应当考虑实际结果的范围。
相关文章推荐
- 关于iOS购物车数量加减(仅适用于整数加减法)
- 大整数加减法
- 【证明】加减法交换两个整数,过程可能会溢出,但结果依然正确
- 高精整数数、纯小数类,支持加减法
- 大整数类-实现加减法
- 大整数加减法运算
- 大整数加减法
- 高精度计算-大整数加减法
- 大整数加减法
- 利用移位、加减法实现整数开平方算法的方法(转)
- 定点整数在计算机中的表示与运算
- c语言随机选择两个整数和加减法形成算式要求学生解答
- 带符号大整数加减法,乘法,除法,模除,指数
- 大整数算法(加减法)
- 整数加减法练习
- 超长整数的加减法
- 定点加减运算(补码加减法及溢出检测)
- 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)
- 字符串加减法(整数,小数)
- C/C++实现大整数加减法