C语言求解释 a=5 b=1 (a<<2)|b是多少 怎么算的 谢谢

 我来答
棉被晕枕头
2011-09-10 · TA获得超过289个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:135万
展开全部
先把a换成二进制为101,符号<<为左移运算符,对a左移两位的结果为100,|为按位或运算符,即a左移两位后的二进制数与b的二进制数按位或,b的二进制为001,所以(a<<2)|b为101即为5.
追问
b是怎么算的啊
xuehaiyisu
2011-09-10 · TA获得超过291个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:148万
展开全部
答案是 1。
十进制5化为二进制 是 00000000 00000000 00000000 00000101,
按位左移后,左边丢弃两位,右边补两个0,变为 00000000 00000000 00000000 00010100,
再化为十进制是20,即执行 20|1,均为非0值,故结果为1.
更多追问追答
追问
b是怎么插进去的 怎么算的
追答
b的值就没有变呀,一直是1 ,|  是按位 或运算,真值表知道吧? 这个跟真值表一样,1|1=1,
1|0=1,0|1=1,0|0=0,执行20|1,20是非零值,就相当于执行 1|1,结果就是1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式