已知int a=12;,则执行a=a>>3;后a的值为
5个回答
展开全部
这是C语言的位运算。他的操作是把a的二进制值向右移动三位,也就是说,把他的二进制的最低三位去掉就可以了。a等于12,他的二进制形式就是1100,去掉最右边的3位,也就是剩下1。也就是说,这时a的值就是1。
这个题目的做法也可以不直接换算到二进制,而是用a的值除以2的3次方(右移k就是除以2的k次方,左移k就是乘以2的k次方),取整数商的方法来得到答案。12/8=1
答案是完全一样的。
这个题目的做法也可以不直接换算到二进制,而是用a的值除以2的3次方(右移k就是除以2的k次方,左移k就是乘以2的k次方),取整数商的方法来得到答案。12/8=1
答案是完全一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
>>是位运算,你去了解下计算方法,答案应该为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
+=和-=的优先级是一样的,是从右到左关联的,计算过程:
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
追问
内啥,你回答的也不是这个问题啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询