C语言问题关于按位右移左移?

若有inta=0100,b=2;则表达式a>>b的值为?我看答案上写的是1,但是int的表示形式只有八进制十进制跟十六进制吧?这程序我从VS上跑了一下答案是16跟我想的一... 若有int a=0100,b=2;则表达式a>>b的值为?
我看答案上写的是1,但是int的表示形式只有八进制十进制跟十六进制吧?这程序我从VS上跑了一下答案是16跟我想的一样,是不是答案错了?这里的0100指的应该是八进制的0100也就是十进制的64对吧,还有就是关于按位右移与左移运算符中,如何判断数据溢出?
展开
 我来答
风若远去何人留
2020-08-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450129
专业C/C++软件开发

向TA提问 私信TA
展开全部
这里的0100并不是c语言的语法,而是一种二进制的说法,不能直接按照八进制理解的
因为位运算都是按二进制位来的 所以书上也会拿二进制做例子方便理解
另外移位操作不存在溢出,不管怎么移,必然会有一位舍去,一位补上,算术操作的溢出在移位中是不适用的
如果要判断左移是否会舍去1,那么判断最高位是不是1就行了
cjjohn3
2020-08-21 · TA获得超过6644个赞
知道大有可为答主
回答量:3622
采纳率:69%
帮助的人:995万
展开全部
因为没啥问题,就是十进制的64
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式