3个回答
展开全部
编译器不同,宽度是不相同,分别如下:
16位编译器:
int: 2个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
32位编译器:
int: 2个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
int: 4个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
具体范围,请看下图:
展开全部
在32位系统上int和long的取值范围如下:
int取值范围:-2147483648 ~ 2147483647
long取值范围:-2147483648 ~ 2147483647
两者的范围是一样的,但是上面范围是vc6.0中查到的取值范围 ,C语言标准库中limits.h头文件中定义的取值范围。用户可以使用limits.h头文件中的INT_MIN、INT_MAX、LONG_MIN、LONG_MAX来查看int或者long类型的取值范围。
#include <stdio.h>
#include <limits.h>
int main()
{
printf("int取值范围:%d ~ %d\n", INT_MIN, INT_MAX);
printf("long取值范围:%d ~ %d\n", LONG_MIN, LONG_MAX);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
32位机器上 int类型 最小-2^7二进制补码10000000,最大2^7-1二进制01111111
long类型最小-2^15二进制补码1000,0000,0000,0000,最大2^15-1二进制0111,1111,1111,1111
long类型最小-2^15二进制补码1000,0000,0000,0000,最大2^15-1二进制0111,1111,1111,1111
追问
请换算成十进制表示一下 谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询