已知int a=12;,则执行a=a>>3;后a的值为

 我来答
cdyzxy
2019-06-23 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3733万
展开全部

右移运算>>是一种二进制运算,是以二进制位为单位的位移运算,移出的位被舍弃,左边补0

12D=1100B,右移1位=0110B,右移2位=0011B,右移3位=0001B

因此12D>>3=0001B=1D

执行a=a>>3;后a的值为1

夏天的小红花

2019-06-23 · TA获得超过4811个赞
知道大有可为答主
回答量:1万
采纳率:83%
帮助的人:706万
展开全部
这是C语言的位运算。他的操作是把a的二进制值向右移动三位,也就是说,把他的二进制的最低三位去掉就可以了。a等于12,他的二进制形式就是1100,去掉最右边的3位,也就是剩下1。也就是说,这时a的值就是1。
这个题目的做法也可以不直接换算到二进制,而是用a的值除以2的3次方(右移k就是除以2的k次方,左移k就是乘以2的k次方),取整数商的方法来得到答案。12/8=1
答案是完全一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2019-06-23 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3774万
展开全部
a+=a-=a+a,运算符和结合性,由运算符优先级,+优先级为4,-=和+=优先级为14,+结合方向从左至右,+=和-+从右至左, 所以: 先计算 (a+a),a=12,a+a=12+12=24 再计算 a-=(a+a),即a=a-(a+a)=12-24=-12, 最后计算 a+=a, 即a=a+a=-12+(-12)=-24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友10198b0
2019-06-21
知道答主
回答量:1
采纳率:0%
帮助的人:731
展开全部
>>是位运算,你去了解下计算方法,答案应该为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哟月乾07
2019-06-19 · TA获得超过2282个赞
知道大有可为答主
回答量:2934
采纳率:0%
帮助的人:168万
展开全部
+=和-=的优先级是一样的,是从右到左关联的,计算过程:
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
追问
内啥,你回答的也不是这个问题啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式