这个位运算是怎么运算的,二级求解

[复制链接]
查看11 | 回复2 | 2011-3-9 21:34:41 | 显示全部楼层 |阅读模式
#include
main()
{char x=040;
printf("%d\n",x=x<<1);
}
我感觉运行出来时80,课正确答案却是64,请问这是如何运算的,还有那个040和40不是一回事吗?

回复

使用道具 举报

千问 | 2011-3-9 21:34:41 | 显示全部楼层
040是8进制,40是10进度。040的2进制代码为100 000,x<<1变成1000 000等于10进制的64。
回复

使用道具 举报

千问 | 2011-3-9 21:34:41 | 显示全部楼层
040是八进制数,相当于十进制的32,左移一位相当于乘以2,结果当然是64
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行