| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:新人弱弱问一下,大大们帮帮忙教教。
只看楼主 加入收藏
tyronezoro
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-1
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
新人弱弱问一下,大大们帮帮忙教教。
整型数据溢出的问题~~

#include "stdio.h"
main()
{
    int a,b;
    a=32767;
    b=a+1;
    printf("a=%d b=%d\n",a,b);
    getch();
}


这个是书本的,输出是a=32767 b=-32768
但是我改为长整型时

#include "stdio.h"
main()
{
    long int a,b;
    a=2147483646;
    b=a+1;
    printf("a=%d b=%d\n",a,b);
    getch();
}
输出是a=-2 b=32767
而不是a=2147483646 b=-2147483647
为什么呢?我用错了长整型?
刚刚学,希望教教
以后我会多多来请教大们的了
搜索更多相关主题的帖子: 新人 
2010-07-01 01:41
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:10 
错误在于你的输出语句,既然你是用长整型,那么应该写成printf("a=%ld b=%ld\n",a,b);如果你还是写成a=%d b=%d的话,那么输出的只能是a和b的后16位二进制数,所以得不到你想要的结果……
建议你把格式输出的知识点再温习一下……

我很懒,但我讨厌别人说我懒……
2010-07-01 06:42
fanxuechao
Rank: 2
来 自:新疆
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-6-9
收藏
得分:0 
二楼说的有道理!!!!!!!
2010-07-01 11:36
tyronezoro
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-1
收藏
得分:0 
哦?
这样的吗?
谢谢你哦。
那里应该是我还没有看到的,我要好好学习才行
2010-07-02 01:11
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
嗯嗯,二楼说的对

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-02 08:52
lz26844229
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2010-7-1
收藏
得分:0 
新手受教中!
2010-07-02 09:39
allienzhang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-1
收藏
得分:0 
同意二楼的说法,
整型常量可以是长整型、短整型。在Tubbo C 2.0里有符号整型常量的范围从-32768到32767,无符号整型的为0到65535;有符号长整型的范围为-2147483648到2147483647。无符号长整型的范围为0到4294967295。
2010-07-02 09:42
快速回复:新人弱弱问一下,大大们帮帮忙教教。
数据加载中...
 
   



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

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