| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:简单的程序问题
只看楼主 加入收藏
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:4 
简单的程序问题
#include <stdio.h>
void main()
{
int a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}


这个程序是潭浩强的C语言书上例子,书上的输出结果是32767,-32768


而我用visual studio c++ 6.0 编译的结果是32767,32768


两个相差一个负号,请问大虾熟对熟错?????
搜索更多相关主题的帖子: include visual C语言 
2008-08-14 22:41
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
收藏
得分:0 
潭浩强的C语言书上例子是以16位系统来举列的!现在的机器都是32位的!

http://blog./csynyk
2008-08-14 22:53
foxpeter
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-11
收藏
得分:0 
你用TC就能输出书里的结果了
2008-08-14 23:01
ronaldfree
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-8-2
收藏
得分:0 
2楼正解。16位机上,int型数据的范围为-32768~32767,32767+1溢出了,就从最大的正数变成了最小的负数。内存中的用16进制数表示为0xffff,在16位系统里解释成-1,在32位系统里为解释为32768(因为没有溢出)
2008-08-14 23:13
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
谢谢大家的帮助,明白了,
2008-08-14 23:36
快速回复:简单的程序问题
数据加载中...
 
   



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

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