| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:新手关于如何用程序验证常用数据类型的取值范围的问题
只看楼主 加入收藏
小强X2
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
新手关于如何用程序验证常用数据类型的取值范围的问题
是这样的,我想写一个小程序来验证c语言中int,long,float这些常用类型的取值范围,一开始想了一个:
int i;
i=1;
while(i>0)
{
    i++;
}
printf("MAX=%d",i-1);

当然,这方法忒笨了,int还好点,要是换成float不知道算到什么时候了,想来想去也没有想到好的方法,所以来听听看大家有什么好的思路没有~~
搜索更多相关主题的帖子: 范围 数据 类型 
2009-09-15 21:43
已屏蔽
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:124
注 册:2009-9-5
收藏
得分:6 
float是按精度算的。。。怎么测。。。- -
2009-09-15 22:56
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:6 
整数的用按位取反。
main()
{  int  a,a1;
   long c,c1;
   a=0x8000; /* 二进字是:10000000 00000000  负 -32768 */
   a1=~a;/* 取反,二进字:01111111 11111111    32767
   c=0x80000000; /* 二进字:10000000 00000000  00000000 00000000   负 -2147483648 */
   c1=~c;  /* 取反  二进字:01111111 11111111  11111111 11111111     2147483647 */
   printf("int=%d~%d\nlong=%ld~%ld\nfloat=%f",a,a1,c,c1);
}
float四字节,有指数位和数字部份,教材上也只是说:约多少到多少。6位精度

努力—前进—变老—退休—入土
2009-09-15 23:11
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:6 
回复 楼主 小强X2
对于有符号的整型(char int long)
int b = 1 << (sizeof(int)*8 - 1);//最小值
int c = (~0)^b;//最大值

对于无符号整型
unsigned int a = ~(unsigned int)0;//最大值

身体是玩命的本钱
2009-09-16 00:20
小强X2
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-15
收藏
得分:0 
回复 楼主 小强X2
*^^*
我也不太懂嘛。。。。。。
2009-09-16 15:21
快速回复:新手关于如何用程序验证常用数据类型的取值范围的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015769 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved