| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1596 人关注过本帖
标题:移位
只看楼主 加入收藏
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
 问题点数:0 回复次数:17 
移位

main()

{char x=040;

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

}

请问这个程序计算结果为何为64?

我的算法如下,不知错在哪里?

八进制数040=100000然后左移一位不是变成000000了吗?

搜索更多相关主题的帖子: 移位 
2004-07-19 14:16
雨夜探月
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-7-15
收藏
得分:0 
你错在认为040左移会是000000,它左移后真正的2进制是1000000,也就是2^6=64

http://www./jgjs/picture/photos/html/10061.htm
2004-07-19 15:35
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
得分:0 
左移不是把1给移掉了吗?怎么会是1000000?

C语言让我感爱到了计算机的乐趣 目前目标:程序员
2004-07-19 15:53
雨夜探月
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-7-15
收藏
得分:0 

难道040=100000左移会溢出?


http://www./jgjs/picture/photos/html/10061.htm
2004-07-19 15:59
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
得分:0 
我还是不明白能不能解释一下谢谢了

C语言让我感爱到了计算机的乐趣 目前目标:程序员
2004-07-19 16:26
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
以下是引用xuexuexue在2004-07-19 16:26:18的发言: 我还是不明白能不能解释一下谢谢了

个人意见:

你定义的是char,用整数打出的是他的ASCII码,ASCII码没有负数,所以应该没有符号位,所以应该没有溢出吧


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2004-07-19 18:29
遥望
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2004-7-1
收藏
得分:0 

不是吧,你再好好看看。


★★★★★★★★★★ 纵里寻她千百度 蓦然回首 那人却在,灯火阑珊处!
2004-07-19 18:41
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
以下是引用遥望在2004-07-19 18:41:33的发言:

不是吧,你再好好看看。

粗心了,不好意思


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2004-07-19 21:45
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
得分:0 
粗心什么了?????

C语言让我感爱到了计算机的乐趣 目前目标:程序员
2004-07-20 12:57
雨夜探月
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-7-15
收藏
得分:0 
移位
还是让高手来解释吧,他们解释的更清楚些.

http://www./jgjs/picture/photos/html/10061.htm
2004-07-20 14:14
快速回复:移位
数据加载中...
 
   



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

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