搜索
查看: 1895|回复: 4
打印 上一主题 下一主题

[原创] 关于int取值范围。~~~

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-5 11:19:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在啊哈-C小学群一不小心看到的问题。嘻嘻。
某一位人这样写
int a,b,c,d,e,f,g;
a=5456545655462513545321335432123532135;
b=5685554565456554(我写不下去了,反正他是随便写的。)
c=........;
d=........;
e=........;
f=........;
g=a*b*c*d*e*f;
printf("%d\n",g);
sleep(5000);
}
上面的代码结果运行是-382657199。
关于这个,我认为上面的多位数,电脑不可能算出来的。
在这里说一下int的取值范围。
int的取值范围字节数有4个
字节数不知道大家懂不懂,就比如1 000这个属于2个字数节。
1 000 000相信大家知道,这是3个字数节。
int的取值范围:↓
-2 147 438 648到+2 147 438 648
这个int是有带符号的-和+是负和正的意思,带有符号。

沙发
发表于 2012-10-6 09:24:36 | 只看该作者
[mw_shl_code=c,true]#include <limits.h>
#include <stdio.h>
int main()
{
        printf("%d %d\n",INT_MIN,INT_MAX);//int
        printf("%d %d\n",SHRT_MIN,SHRT_MAX);//short
    sleep(5000);
        return 0;
}
[/mw_shl_code]
板凳
发表于 2012-10-11 14:44:28 | 只看该作者
+2 147 438 648
大飞一脚 是 :+2 147 438 647  
地板
发表于 2012-11-18 20:44:46 | 只看该作者
懂了这个
int的取值范围字节数有4个
字节数不知道大家懂不懂,就比如1 000这个属于2个字数节。
1 000 000相信大家知道,这是3个字数节。
不懂了
int的取值范围:↓
-2 147 438 648到+2 147 438 648
这个int是有带符号的-和+是负和正的意思,带有符号
5#
发表于 2014-10-8 11:17:08 | 只看该作者
1000不是2个字节,而是最少用2个字节能放下
1000000也不是3个字节,而是用3个字节才能放下
占几个字节看的是类型,不是数字本身的大小

顺带一说一个 字节未必是8个二进制位,不过现代的计算机一般都是
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表