整数的运算
无符号数加法
对满足0 =< x, y<2w的x和y有:
例如:无符号数65535 + 1 为10000000000000000,由于超过16位,所以截断后0~15位都是0,因此结果为0
结果为0
补码加法运算
补码加法运算就是先按照无符号加法进行运算,而后在进行无符号和有符号的转换
对满足 -2w-1 <= x,y <= 2w-1-1的整数x和y, 有:
例如:-35768 + (- 1)要先把两个数转换为无符号数,进行运算后再转为有符号数
结果为2147483647
无符号数乘法
将一个无符号数截断为w位等价于计算该值摸2w
结果为65534
补码乘法
将一个补码数截断为w位相当于先计算该值摸2w,再把无符号数转换为补码
补码乘法相当于先计算两个值的乘积,再将该值模2w,再把无符号数转换为补码
结果为
0
14
乘以常数
左移一个数值等于执行一个与2的幂相乘的无符号乘法,低位补0
除以常数
除以 2 的幂可以用向右移位来运算,无符号除法使用逻辑移位,补码除法使用算术移位