| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:输出结果
只看楼主 加入收藏
lyf
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2005-11-17
收藏
 问题点数:0 回复次数:5 
输出结果
下面的程序输出结果是64,为什么呢?麻烦大家给我解释一下。

main()

{char x=040;

printf("%d",x=x<<1);

}

搜索更多相关主题的帖子: 结果 输出 
2006-01-12 14:55
blackhold
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-3-21
收藏
得分:0 
%d是输出整形数,x=x&lt;&lt;1是撒意思???

2006-01-12 15:43
blackhold
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-3-21
收藏
得分:0 
若要输出字符可以改成%c

2006-01-12 15:43
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
以下是引用blackhold在2006-1-12 15:43:00的发言:
x=x<<1是撒意思???

<<是位移运算符,

main()

{char x=040;

printf("%c",x=x<<1);

}
这样应该可以


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-01-12 16:15
shensheng4
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-8-7
收藏
得分:0 

这个题是不是该这么理解
首先x定义的是字符型的,所以x是字符;040是八进制的数,十进制的值为32,这时应该是指将ASCII码为32的字符(即空格)赋给x。
<<是按位左移运算符,按照十进制的想法来看就是将ASCII乘2,则x的值变为64D
所以按照%d输出得64
按照%c输出得"@"


梦想是不可能实现的,正因为如此才值得我们去追寻。 这是我选择的路,即使付出一切,我也毫无怨言。
2006-01-12 21:25
吸血鬼王
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-12-17
收藏
得分:0 

同意楼上!

2006-01-13 07:57
快速回复:输出结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017060 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved