一、移位运算
1.移位的意义
移位运算在日常生活中常见。例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。
计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。
移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。
计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n位低位或n位高位出现空位。那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。
2.算术移位规则
对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。
不同码制机器数移位后的空位添补规则
1.移位的意义
移位运算在日常生活中常见。例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。
计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。
移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。
计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n位低位或n位高位出现空位。那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。
2.算术移位规则
对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。
不同码制机器数移位后的空位添补规则
|
|


