是不是无符号数的移位都是逻辑移位,有符号数的移位都是算术移位?

 我来答
RenKwang
高粉答主

2020-07-08 · 专注解答想答的问题们
RenKwang
采纳数:172 获赞数:33036

向TA提问 私信TA
展开全部

对于无符号类型的数据,所有移位操作都是逻辑移位;对于有符号类型的数据,依据编译器不同而选择到底采用逻辑移位还是算术移位。

无论是左移还是右移,空缺部分都是直接补0。移出的位数要么到了更高位,要么直接丢弃。取决于你的数据类型

左移与逻辑移位完全相同,右移的时候左边的空缺位补0还是补1,根据符号位来,如果是正数,则补0,如果是负数,则补1。

只要移出的数据不被舍弃,无论是逻辑移位还是算术移位都类等于乘除法,这也正是为啥算术右移的时候补的数和符号位一致的原因。

扩展资料:

当乘数或除数是2n时,算术移位用来快速地完成对整数进行乘法或除法的运算。算数左移n位相当于乘上2n,执行方法是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补0。

逻辑左移n位的执行方法,是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补"0"。逻辑右移n位的执行方法是把原来数中的每一位都向右移动n个位置,右面移出的低位丢弃不要,左面高位空出的位置上全部补0。

参考资料:百度百科-算数左移位

edit98
2014-07-10 · TA获得超过9277个赞
知道大有可为答主
回答量:5916
采纳率:72%
帮助的人:3080万
展开全部
应该刚好相反,因为逻辑移位要存储移到那里做标记,而算术不需要做标记,移过后就行了。
所以跟你标题上说的是相反的。
感觉ok就给个好评采纳吧,尽快采纳可以帮我赚多50分哦,谢谢。。。。。
更多追问追答
追问

第十三题的注意,和你说的不一样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式