C语言中整数除以2和右移一位的问题 30

对于一个整数(intA),除以2(A/=2)和右移一位(A>>=1)有什么区别?采用什么方法能让他们的计算结果一致但是说要用什么方法能让计算结果一致,那应该是有不一致的结... 对于一个整数(int A),除以2(A/=2)和右移一位(A>>=1)有什么区别?采用什么方法能让他们的计算结果一致
但是说要用什么方法能让计算结果一致,那应该是有不一致的结果的啊,而且也没说出有什么区别啊
展开
 我来答
CraftinA
2008-07-24 · TA获得超过573个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:290万
展开全部
给你举个例子吧

比如说,A=7;
把A化成二进制的就是111;
A/2是十进制的运算,也就是7/2 = 3;
A>>=1是将A的二进制位向右移一位,也就得到011,结果也是3;

一般情况下这两种运算结果都会相同的,
如7 = 1*2^2+1*2^1+1*2^0;
除以2以后 1*2^1+1*2+1*2^-1;
结果也就差在最后的那个0.5上,但是,/是整出,最后的0.5会舍去,所以结果应该会相同;
695903425
2012-03-05
知道答主
回答量:2
采纳率:0%
帮助的人:3万
展开全部
左移时总是移位和补零。右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式