C语言中怎么求最值,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
大家应该都知道整型数的最小值与最大值
float(符号占1位,指数占8位,尾数小数占23位)的最值如下
111111111尾数的23位不全为0,例如0xFF800001: 表示不是数值,VxWorks中用NaN表示无效数值
11111111100000000000000000000000 = 0xFF800000:表示负无穷大,VxWorks中用Inf表示无穷大
11111111011111111111111111111111 = 0xFF7FFFFF:表示最小的负数,即-2128,约等于-3.402824*1038
10000000100000000000000000000000 = 0x80800000:表示最大的负数,即-2-126,约等于-1.175494*10-38,不过printf精度有限,一般就显示为0了
00000000000000000000000000000000 = 0x00000000:表示0
00000000100000000000000000000000 = 0x00800000:表示最小的正数,即2-126,约等于1.175494*10-38
01111111011111111111111111111111 = 0x7F7FFFFF:表示最大的正数,即2128,约等于3.402824*1038
01111111100000000000000000000000 = 0x7F800000:表示正无穷大
011111111尾数的23位不全为0,例如0x7F800001: 表示不是数值
double(符号占1位,指数占11位,尾数小数占52位)的最值如下
111111111111尾数的52位不全为0,例如0xFFF0000000000001: 表示不是数值
111111111111尾数的52位全为0 = 0xFFF0000000000000: 表示负无穷大
111111111110尾数的52位全为1 = 0xFFEFFFFFFFFFFFFF: 表示最小的负数,即-21024,约等于-1.797693*10308
100000000001尾数的52位全为0 = 0x8010000000000000: 表示最大的负数,即-2-1022,约等于-2.225074*10-308
000000000000尾数的52位全为0 = 0x0000000000000000: 表示0
000000000001尾数的52位全为0 = 0x0010000000000000: 表示最小的正数,即2-1022,约等于2.225074*10-308
011111111110尾数的52位全为1 = 0x7FEFFFFFFFFFFFFF: 表示最大的正数,即21024,约等于1.797693*10308
011111111111尾数的52位全为0 = 0x7FF0000000000000: 表示正无穷大
011111111111尾数的52位不全为0,例如0x7FF0000000000001: 表示不是数值
看完上述内容,你们掌握C语言中怎么求最值的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。