整数的运算
(1)不同长度整整之间的转换
一般而言,短整数可以转换成长整数表示而保持其数值不变,而反过来却不行。短整数转换成长整数表示的方法是,把符号位向左扩充至所需要的长度为止。
(2)整数的变号操作
所谓“变号操作”,是指将该整数变成绝对值相同符号相反的另一个整数。变号操作又称为“取负”运算,它的处理方法是,将该整数的每一个二进位变反,然后在最末位(个位)加1,其结果即为所求。
(3)整数的移位操作
移位操作有多种。按照移位方向来分,移位操作可分成左移、右移两大类;按照操作性质则又可区分为算术移位、逻辑移位和循环移位等不同类型。
① 算术移位
当乘数或除数是2n时,算术移位用来快速地完成对整数进行乘法或除法的运算。算术左移n位相当于乘以2n,执行方法是把原来的数中每一位都向左移n个位置,左面移出的高位丢弃,右面低位空出的位置上全部补0。若正数左移过程中移出的位中包含1,或者负数移出的位中包含0时,则表示运算结果超出了可表示的数值范围,即发生了溢出,结果不正确。
② 逻辑移位
逻辑左移n位的执行方法是,把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃,右面低位空出的位补0。
逻辑右移n位的执行方法是把原来的每一位都向右移动n个位置,右面移出的低位丢弃,左面高位的位置上全部补0。
③ 循环移位
循环移位是一种逻辑操作,它仅仅移动操作数中二进位信息的位置,不会丢弃任何一位信息。循环左移n位是把原来的数中每一位都向左移动n个位置,左面移出的高位放在右面低位空出的位置上。循环右移n位则把原来数中的每一位都向右移动n个位置,右面移出的低位放到左面高位空出的位置上。
(4)逻辑运算
逻辑运算(又称为布尔运算)总是按位进行处理的,即对应位之间进行规定的逻辑运算,不考虑位与位之间的进位。常用的基本逻辑运算有4种:“非”运算(NOT)、“或”运算(OR)、“与”运算(AND)、“按位加”运算(XOR),它们都非常简单。
(5)整数加法
两个带符号整数相加的运算方法很简单,只需从低位到高位把所有位(包括符号位)相加,逢二进一,最高位产生的进位忽略不计。做加法运算时判断有无溢出的规则是,两个同号的整数相加,若结果的符号却相反,则发生溢出。注意,是否发生溢出并不取决于最高位有无进位。
(6)整数减法
两上带符号整数相减的运算方法也很简单,只需先把减数变号,然后再与被减数相加即可。
做减法运算时判断有无溢出的规则是,两个异号的整数相减,若结果的符号与被减数符号相反,则发生益出。当然,是否发生溢出也并不取决于最高位有无进位。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |