2011-07-19
展开全部
标准c++中 一个int型是一个机器字长,double是两个机器字长。
对于16位机:int是16位,double是32位。即sizeof(int) = 2,sizeof(double)=4
对于32位机(即你的机器一个字长为32个二进制位):
int是32位,double是64位。
对于64位机:int是64位,double就成了128位了。
所以double的具体范围是多少要看你的机器以及编译器而言(如果编译器不遵从标准,长度当然不一样)。
以32位机而言:一个double占64位内存空间。故而他能表示的最大的数就是当个后面63二进制位全为1,即2^63-1 (至于最高位,一般用于表示正负,计算时要去掉)。
所以double的范围就是 -2^63 ~ 2^63-1;
对于16位机:int是16位,double是32位。即sizeof(int) = 2,sizeof(double)=4
对于32位机(即你的机器一个字长为32个二进制位):
int是32位,double是64位。
对于64位机:int是64位,double就成了128位了。
所以double的具体范围是多少要看你的机器以及编译器而言(如果编译器不遵从标准,长度当然不一样)。
以32位机而言:一个double占64位内存空间。故而他能表示的最大的数就是当个后面63二进制位全为1,即2^63-1 (至于最高位,一般用于表示正负,计算时要去掉)。
所以double的范围就是 -2^63 ~ 2^63-1;
展开全部
当题目涉及到求最大最小值时,最初的比较数字就应当设置为INT_MAX或INT_MIN,更为安全。
<limits.h>中有INT_MAX和INT_MIN的宏定义可直接使用。
或者自行定义宏
#define INT_MAX 0x7fffffff
#define INT_MIN 0x80000000
INT_MAX = 2147483647
INT_MIN = -2147483648
这仅试用在没有限制范围的情况下使用。
否则同样会出现其他连锁的错误。
<limits.h>中有INT_MAX和INT_MIN的宏定义可直接使用。
或者自行定义宏
#define INT_MAX 0x7fffffff
#define INT_MIN 0x80000000
INT_MAX = 2147483647
INT_MIN = -2147483648
这仅试用在没有限制范围的情况下使用。
否则同样会出现其他连锁的错误。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过#include命令包含limits.h这个头文件,里面定义了各种数据类型的最大值和最小值。其中有一个定义就是INT_MAX。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-11-24 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
最初的比较数字就应当设置为INT_MAX或INT_MIN,更为安全。
<limits.h>中有INT_MAX和INT_MIN的宏定义可直接使用。
或者自行定义宏#define INT_MAX 0x7fffffff
#define INT_MIN 0x80000000
INT_MAX = 2147483647
INT_MIN = -2147483648
这仅试用在没有限制范围的情况下使用。
否则同样会出现其他连锁的错误。
<limits.h>中有INT_MAX和INT_MIN的宏定义可直接使用。
或者自行定义宏#define INT_MAX 0x7fffffff
#define INT_MIN 0x80000000
INT_MAX = 2147483647
INT_MIN = -2147483648
这仅试用在没有限制范围的情况下使用。
否则同样会出现其他连锁的错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
numeric_limits用这个模板类吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询