fish7fish7 发布留言 2008-8-2 12:21
请教float的取值范围!
请解释原因,谢谢!
mark0289 发布留言 2008-8-2 13:03
这个在书上能查到吧,而且介绍很详细
谭浩强的C语言上应该有的
fish7fish7 发布留言 2008-8-2 13:33
楼上的太有才了![tk04] 你既然知道为何不COPY一下呢?[tk04]
fish7fish7 发布留言 2008-8-2 18:22
没人回答,继续问,不懂就问,啊咋咋地……[tk05]
fish7fish7 发布留言 2008-8-2 18:58
坚持不懈,继续问,诺大的一个论坛,真的没人才了吗?[tk07]
fish7fish7 发布留言 2008-8-2 19:03
仍旧问![tk09]
woshicl 发布留言 2008-8-2 19:08
百度搜
fish7fish7 发布留言 2008-8-2 19:17
搜不到,搜到的大多是错解,求权威回答……[tk09]
fish7fish7 发布留言 2008-8-2 19:23
1 11111111 尾数的23位不全为0: 表示不是数值
1 11111111 00000000000000000000000: 表示负无穷大.比最小负数还小的数都视为负无穷大.
1 11111110 11111111111111111111111: 表示最小的负数,即-2^128=-3.4*10^38
1 00000001 00000000000000000000000: 表示最大的负数,即-2^(-126)=-1.18*10^(-38)
0 00000000 00000000000000000000000: 表示0
0 00000001 00000000000000000000000: 表示最小的正数,即2^(-126)=1.18*10^(-38)
0 11111110 11111111111111111111111: 表示最大的正数,即2^(128)=3.4*10^(38)
0 11111111 00000000000000000000000: 表示正无穷大,比最大正数还大的数都视为正无穷大.
0 11111111 尾数的23位不全为0: 表示不是数值
棕上所述,float型数据的表示范围有以下五种(还有别的特殊的就不说了):
负无穷大; -3.4*10^38
当然,单精度数的输出只能保证6到7个有效数字,其余各位不准确,但在内存中的存放是准确的.
这是一种说法;
范围是-3.4*10^-38~3.4*10^38
此乃另一种说法!
权威指教哪个对?还是都不对?[tk09]
云中之侠影 发布留言 2008-8-3 08:27
是-3.4×10-38~3.4×10^38。老谭的书上是这么说的
fish7fish7 发布留言 2008-8-3 11:15
有人知道为什么吗?[tk09]
fish7fish7 发布留言 2008-8-3 16:59
好帖别沉,继续顶……
我都为我自己的坚持而感动……
[em04] [em04] [em04] [em04] [em04] [em04] [em04]
妍清舞 发布留言 2008-8-3 19:38
不同的系统,取值情况会有所不同
hangeng 发布留言 2008-8-3 19:41
都对!
自己做个程序判断一下就可以了!
不同的编译器会有差异的!
fish7fish7 发布留言 2008-8-3 20:58
请楼上的两位解释原因,衷心感谢^.^[tk04] [tk04] [tk04]
我是稀饭 发布留言 2008-8-3 23:14
因为单精度float 所占用的比特数32位 双精度占64位 长双精度占128位哈
页: [1]