计算机在整数运算过程中,若结果超出此允许范围,则称为发生“溢出”。
2.整数的算术、逻辑运算
(1)不同长度整数之间的转换
一般而言,短整数可以转换成长整数表示,而反过来却不行。短整数转换成长整数表示的方法是:把符号位向左扩充至所需要的长度为止。
(2)整数的变号操作
所谓“变号操作”是指将该整数变成绝对值相同但符号相反的另一个整数。变号操作又叫“取负”运算,它的处理方法是:将该整数的每一个二进位变反,然后在最末位(个位)加1,其结果即为所求值。
(3)整数的移位操作
移位操作有多种,按照移位方向来分,移位操作可分成左移、右移两大类;按照操作性质则又可区分为算术移位、逻辑移位和循环移位等不同类型。它们有些只对整数进行,有些则可以对任何二进制数进行。
(4)逻辑运算
逻辑运算(又叫布尔运算)总是按位进行处理的,即对应位之间进行规定的逻辑运算,不考虑位与位之间的进位。常用的基本逻辑运算有4种:“非”运算(NOT)、“或”运算(OR)、“与”运算(AND)、“按位加”运算(XOR),它们都非常简单。
(5)整数加法
两个带符号整数相加的运算方法很简单,只需从低位到高位把所有位(包括符号位)相加,逢2进1,最高位产生的进位忽略不计。
(6)整数减法
两个带符号整数相减的运算方法也很简单,只需先把减数变号,然后再与被减数相加即可。
(7)整数乘法
两个无符号整数的乘法很简单,它与日常用纸和笔进行乘法几乎没有什么不同。
(8)整数除法
对于补码表示的两个带符号整数,其除法运行比乘法还要复杂一些。下面是算法的简单描述(假设被除数和除数都是n位):
①把除数(补码)放入寄存器M,把被除数从n位扩展成2n位长的补码后放入寄存器A和Q,高位部分放入A(全0或全1),低位部分放入Q。②把寄存器A和Q向左移1位。
③如果A和M同号,执行A=A-M,否则执行A=A+M。
④执行上一步操作的前后,若A的符号保持不变,或者A和Q(高位部分)的结果都是0,则操作成功,令Q0 =1;否则操作不成功,恢复A原来的内容,并令Q0 =0。⑤重复上述步骤②~④共n次,结束。
除法结束后,寄存器A中存放的是余数,寄存器Q中是得到的商。若被除数与除数异号,则商为负数,所以应再对Q取补。不论何种情况,被除数、除数、商和余数总满足下面的公式:被除数=商×除数+余数
(四)实数的性质和运算1.实数(浮点数)的性质
下表所示是Pentium微处理器中32位浮点数和64位浮点数的一些性质。
32位浮点数 64位浮点数
符号 阶码 尾数 数值
符号 阶码
尾数 数值
+0 0 全0 全0 0 0 全0 全0 0
-1 1 全0 全0 0 1 全0 全0 0
+∞ 0 全1 全0 +∞ 0 全1 全0 +∞
-∞ 1 全1 全0 -∞ 1 全1 全0 -∞
规格化的
非0正实数 0 0 (1.f) 规格化的 非0负实数 1 0 非规格化的 相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |