定点数的移位计算
文章目录
总述
算术移位
十进制的算术移位
为了等效的实现乘法和除法。
原码的算术移位
算术右移
右移:高位补0,低位舍弃。被舍弃的位=0,则整体来看相当于➗2,但是如果被舍弃的位≠0,则会丢失精度。
算术左移
数值位为7位,表示数的范围为0~127,不能表示超出这个范围的数。
如果是定点小数
和定点的整数是同理的。
反码的算术移位
正数的原码和反码一样,所以移位也相同。但是负数不一样,是相反的,故是补1不是补0。
补码的算术移位
正数的补码和反码一样,所以移位也相同。负数的移位,可以分成两个部分,一部分同反码的移位,一部分同原码的移位。
算术移位总结
算术移位的应用举例
将-20✖7的结果,等价于,-20不移位±20左移一位±20左移两位的和。
计算机用加法来实现乘法。
逻辑移位
逻辑移位的应用举例
RGB,先移位,在相加,拼凑出RGB。
循环移位
带进位位的循环左移,是把最高位存储在CF中,在左移后,用CF的值去填充移动后缺失的位。循环右移同理。