作者LPH66 ( )
看板C_and_CPP
标题Re: [问题] IEEE754 Float正规化的最小正数
时间Sun Jun 21 06:00:56 2020
※ 引述《a27839579 ()》之铭言:
: 各位大大
: 关於float的精度问题
: 课本上说float的精度在小数点後六位,也就是说最小可以表示到0.000001(10^-6)
: 但IEEE754的格式,最小的正数如下
: 0 00000000 00000000000000000000000
: 既为1*2^-127
: 其结果化成10进位为2^-127,比10^-6小那麽多
: 是我对精度的理解错了吗
: 因为课本上写是因为IEEE格式小数占了23bit,
: 2^23=8388608,比10^6还小,但比10^7大
: 麻烦各位!
因为精确度和最小正数是两回事
你应该知道浮点数其实就只是二进位的科学记号而已
精确度其实就是科学记号概念当中的有效位数这回事
或者讲精确一点就是我在
#1RePAc02 提到的 ulp 这个词的意思
而最小正数只不过是科学记号的次方数达到最小的数字而已
另外, IEEE754 float 的最小正数不是你那个喔
全部 0 的这个数表示的就是 0.0f 这个浮点数
最小的正规化正数是 0 00000001 00000000000000000000000 即是 2^-126
次方栏位全部 0 的那些是非正规化的数, 表示规则是不一样的
--
'You've sort of made up for it tonight,' said Harry. 'Getting the
sword. Finishing the Horcrux. Saving my life.'
'That makes me sound a lot cooler then I was,' Ron mumbled.
'Stuff like that always sounds cooler then it really was,' said
Harry. 'I've been trying to tell you that for years.'
-- Harry Potter and the Deathly Hollows, P.308
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.194.100 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1592690458.A.7F7.html
1F:推 a27839579: 十分感谢!! 06/23 04:01
2F:推 k1400: 06/25 11:44