C语言 左移位的问题,求大神,帮忙解释一下!!!

intaa=0x12;pitntf("%d\n",aa<<3);应该等于96的为什么是90,要是移4位,应该192,但输出是120!!!帮忙解释一下。。。。谢谢... int aa=0x12;
pitntf("%d\n",aa<<3);
应该等于96的为什么是90,要是移4位,应该192,但输出是120!!!
帮忙解释一下。。。。谢谢
展开
 我来答
snowland
2013-07-09 · 知道合伙人软件行家
snowland
知道合伙人软件行家
采纳数:1229 获赞数:7313
多次参加C++算法类竞赛获奖。

向TA提问 私信TA
展开全部
aa=0001`0010(2).
aa<<3=000`1001`0000=90(10)(就是在后面填3个0,结果和输出一样)
aa<<4=0001`0010`0000=120(10)(也和输出一样)
楼上好像都不对
yuantailing
推荐于2018-03-31 · TA获得超过2545个赞
知道小有建树答主
回答量:1167
采纳率:92%
帮助的人:642万
展开全部
aa==0x12(0x表示十六进制,十六进制12,十进制是16+2==18),二进制0001 0010

左移3位,二进制1001 0000,十六进制0x90,十进制144。
左移4位,二进制0001 0010 0000,十六进制0x120,十进制288。
你确定是printf("%d\n",aa<<3);吗?可能是这个吧:printf("%x",aa<<3);,%x表示十六进制输出。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GodHlpMe
2013-07-08 · TA获得超过8455个赞
知道大有可为答主
回答量:4600
采纳率:46%
帮助的人:962万
展开全部
你说的也不对
aa为18
aa<<3,相当于乘8,显示144.
aa<<4,相当于乘16,显示288
我用C++BUILDER6 试过了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式