c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

软件和网站开发以及相关技术探讨
回复
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#1

帖子 weihua2008 » 2009-04-27 14:59

我想知道int的取值范围,long的取之范围是不是比int的大哪,我在linux下测试的结果是不大
我测试了一把,int和long一样2099999999算起来还不到2G
那么4G之痒又是哪来的哪??
头像
kwarph
帖子: 51
注册时间: 2006-06-19 19:19
联系:

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#2

帖子 kwarph » 2009-04-30 23:30

这个是由C++实现决定的,我的g++: gcc 版本 4.3.2 (Ubuntu 4.3.2-1ubuntu12) 32位操作系统。

代码: 全选

numeric_limits<int>::max():2147483647
numeric_limits<long>::max():2147483647
numeric_limits<long long>::max() : 9223372036854775807
long long目前还不是C++标准类型。
Tiger Cheng
昆山轩辕IT培训中心
C++培训讲师
邮件:kwarph@gmail.com
主页:http://www.xuanyuan-soft.cn
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#3

帖子 weihua2008 » 2009-05-02 20:41

谢谢,我的测试的是2099999999,int和long都是这么大
poet
帖子: 2841
注册时间: 2006-09-11 22:47

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#4

帖子 poet » 2009-05-02 20:56

weihua2008 写了:我想知道int的取值范围,long的取之范围是不是比int的大哪,我在linux下测试的结果是不大
我测试了一把,int和long一样2099999999算起来还不到2G
那么4G之痒又是哪来的哪??
4G 之痒说的是“地址宽度”而不是“数据宽度”。

int 通常对应着缺省的数据宽度。
size_t 或者 void * 这两个类型通常对应着地址宽度。

至于 long 是否比 int 大,请你装一个 64bit ubuntu 再来做测试。
头像
佚之狐L
帖子: 840
注册时间: 2008-01-28 13:02

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#5

帖子 佚之狐L » 2009-05-02 21:07

weihua2008 写了:谢谢,我的测试的是2099999999,int和long都是这么大
这是个什么数呢?int默认算成有符号的long int,可简写为long,上限应该是2^64-1吧,我用过的几个编译器都是这么算的, :em01
不好意思,2^63-1,有一位是符号位
上次由 佚之狐L 在 2009-05-07 21:52,总共编辑 1 次。
携书弹剑走黄沙,瀚海天山处处家;
大漠西风飞翠羽,江南八月看桂花
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#6

帖子 weihua2008 » 2009-05-05 13:41

这话我就不懂了,默认的int你是说与long是等同的?
你说的上限应该是2^64-1这话不对,你用过啥编译器是这么算的?
你确定都是吗??
lightening
帖子: 6
注册时间: 2008-12-27 21:37

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#7

帖子 lightening » 2009-05-06 19:48

我们老师说int是缺省值,一般就是long.
头像
pollothana
帖子: 262
注册时间: 2007-03-08 10:47

Re: c++ 中int和long ,int和long long有区别吗,主要是表示数据的大小上??

#8

帖子 pollothana » 2009-05-10 1:54

int最短和short一样(2字节),最长和long一样(4字节),具体由编译器决定,不过现在应该都是4字节了。
My blog: hsquared66.blogspot.com
回复