为什么左移等于乘2?

文章详细解释了二进制的左移和右移操作,涉及位权变化和在计算机中的逻辑移动,以及如何通过集线器和分线器实现乘以2和除以2的计算,特别提到了溢出情况。
摘要由CSDN通过智能技术生成

根据八位二进制-十进制按权展开公式:
b8∙2^7+b7∙2^6+b6∙2^5+b5∙2^4+b4∙2^3+b3∙2^2+b2∙2^1+b1∙2^0
设(b8,b7,b6…b1)是八位二进制的序列,记为B;设(2^7,2^6,…2^0)是位权序列,记为D。十进制数Dec可表示为:
Dec=B∙D
当十进制数乘2时:        2Dec=2∙B∙D
把系数2代入D序列可发现:
2D=(2^(7+1),2^(6+1),…2^(0+1) )
也就意味着所有位权的幂被加一,同时可以被视为B序列整体向高位移动一位。由于在计算机中高位到低位在逻辑上是按从左往右排列,因此这种向高位移动称之为左移,当二进制的每个位均向左移动一位时,从相对运动来看,每个位对应的位权序列在向右移动,这就意味着64位权数移动后被前方128位权数覆盖,每一位皆是如此,所以左移后的值整体乘以了2,同理右移是除以2。需要注意的是当最高位左移后将溢出,此时的数值并不是整体乘以了2,我们所讨论的所有结论都应该是正常的不溢出的现象。对于集线器和分线器,我们可以将分线器分出的每一位线错开一位接在集线器上来制作左移器和右移器,来实现乘以2和除以2的操作。

e7466e340e35458da354debe6dc391bd.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值