通过前面的学习,我们已经知道了数据在计算机中是如何表示,那么它们是怎么参加运算的呢
或者说运算器是怎样工作的呢
要明白这个问题就是我们在这一章要学习的算术、逻辑运算的方法
第5章运算方法和运算器§1移位运算和舍入操作一、移位运算1、意义移位运算是计算机中最基本、最常见的运算操作之一
任何计算机都含有移位指令
移位操作有两种:(1)逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量变化
(2)算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化
在此仅讨论算术移位:当机器字长固定,左、右移位时,出现空位怎么办
2、算术移位的规则大前提是:移位后,符号位保持不变
(1)正数:正数的符号位为0,且[x]原=[x]反=[x]补,故进行算术移位时,出现的空位均补0
例如:[x]原=0
1001,2[x]原=0
0010;[x]反=0
0011,[x]反=0
0001;[x]补=0
10012[x]补=0
0010;(2)负数:原码的移位:除符号位外,原码的数值部分与真值相同,故移位后都补0
[x]原=1,01112[x]原=1,1110[x]原=1,0011反码的移位:除符号位外,反码的数值部分与原码相反,故移位后都补1
[x]反=1,01112[x]反=1,1111[x]反=1,1011补码的移位:除符号位外,左移补0,右移补11212123、练习设X=-0
1001010,求:(1)X的原码左移2位、右移2位各是多少
(2)X的反码左移2位、右移2位各是多少
(3)X的补码左移2位、右移2位各是多少
思考:2[x]补=[2x]补成立吗
[x]补=[x]补成立吗
解答:当x>=0时,在不溢出的情况下,上述二式成立;当x,所以先作-即11010-10101最后将Y的符号赋予结果的符号00101因此X+Y=-00101由上述运算看来,用原码做加法实