32位的long型和int型都占四个字节,那么它们的取值范围是否一样?

每次提问都有很多文不对题的回答,为什么百度不能禁止这些无聊的人的账号?... 每次提问都有很多文不对题的回答,为什么百度不能禁止这些无聊的人的账号? 展开
 我来答
莫道無情
2019-07-08 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.6万
展开全部

不一样。

在一般的电脑中,int数据范围为-2147483648~2147483647[-2^31~2^31-1];

long取值范围:-2147483647 到 2147483647 ,即为 -(2^31 - 1) 到 (2^31 - 1)。

int 是 C 语言的基本整数类型,可以满足处理一般数据的需求。C 语言还提供了四个可以修饰 int 的关键字:short、long、signed,以及 unsigned。

扩展资料:

利用这四个关键字:short、long、signed,以及 unsigned,C 语言标准定义了以下整数类型: 

1) short int(可简写为 short),和 int 一样,也是有符号整数

2) long int(简写:long),有符号整数

3) long long int(简写:long long),C99 标准添加的类型,有符号整数

4) unsigned int(简写:unsigned),无符号整数,不能表示负数

5) unsigned long int(简写:unsigned long),无符号整数,不能表示负数

6) unsigned short int(简写:unsigned short),无符号整数,不能表示负数

7) unsigned long long int(简写:unsigned long long),C99 添加的类型,无符号整数

8) 所有没有标明 unsigned 的整数类型默认都是有符号整数。

参考资料:百度百科-长整型

自我编程
2018-04-19 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

32位,long,int都是四个字节,最大取值都是一样的。

我写了测试代码,用无符号型int和long分别存储-1。然后打印出来就是最大值。

#include <stdio.h>
int main()
{
    unsigned int intNum;
    unsigned long longNum;
    intNum=4294967295;
    longNum=4294967295;
    printf("sizeof(int)=%d,sizeof(long)=%d\n",sizeof(intNum),sizeof(longNum));
    printf("uintMax=%u,ulongMax=%lu\n",intNum,longNum);
    return 0;
}

long位数>=int。具体要看系统。

64位的Windows使用的是LLP64(long long and point 64)模型。参照下表:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjcmqyd
2018-04-19 · TA获得超过5629个赞
知道大有可为答主
回答量:3236
采纳率:79%
帮助的人:835万
展开全部

答:32位的long型和int型都占四个字节,那么它们的取值范围是同样的。

可以用以下语句查询(需要limits.h头文件):

printf("         INT_MAX = %d\n",INT_MAX);
printf("         INT_MIN = %d\n",INT_MIN);
printf("        LONG_MAX = %ld\n",LONG_MAX);
printf("        LONG_MIN = %ld\n",LONG_MIN);

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2018-04-20 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:889万
展开全部
这个得看你用的是什么程序语言和什么编译器.

按你的叙述来说, 可能是C/C++在32位编译器下.

long的完整写法应该是 long int

long int和int在32位编译器下都是4字节,效果完全相同,取值范围也一样.

但在其他编译器上就可能不一样.

long int固定为32位, int根据编译器而变.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Oan365
2018-04-19 · TA获得超过372个赞
知道小有建树答主
回答量:417
采纳率:100%
帮助的人:213万
展开全部
只要是32位,4个字节,那取值范围就是一样的,long和int的字节数是取决于编译器的,一般来说long是32位,int是16位。 可以在编译器里编写个小程序,输出long变量和int变量的最大值看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(14)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式