浮點(diǎn)數(shù)一些設(shè)計(jì)原理

摘要:本篇文章會(huì)講述浮點(diǎn)數(shù)的設(shè)計(jì)原理,比如如何存儲(chǔ)二進(jìn)制的問題既峡,從而幫助我們更好的編碼。

__1. deading code __

console.log(1.0-0.9 == 0.1);
//輸出 false
console.log(1.0-0.9, 0.1);
//輸出 0.09999999999999998 0.1
//所以判斷浮點(diǎn)運(yùn)算結(jié)果前要對(duì)參數(shù)進(jìn)行精度縮小,縮小精度會(huì)四舍五入闸准。
console.log(parseFloat((1.0-0.9).toFixed(10)) == 0.1);
//輸出 true 
console.log(parseFloat((1.0-0.9).toFixed(10)),0.1)   
//輸出 0.1 0.1

所以使用 JavaScript 設(shè)計(jì)浮點(diǎn)數(shù)計(jì)算時(shí)霎奢,要考慮小數(shù)不準(zhǔn)確的問題户誓。

2.浮點(diǎn)數(shù)二進(jìn)制存儲(chǔ)

如 32 存儲(chǔ)為例來講解存儲(chǔ)。

Sign Exponent Mantissa
1bit 8bits 23bits
  • Sign:表示浮點(diǎn)數(shù)是正數(shù)還是負(fù)數(shù)幕侠。0表示正數(shù)帝美,1表示負(fù)數(shù)
  • Exponent:指數(shù)部分。類似于科學(xué)技術(shù)法中的M*10^N中的 N晤硕,要注意規(guī)定
    01111111 = 2^0 也就是 0悼潭,所以指數(shù)部分可以表達(dá): -128 - 127
  • Mantissa:基數(shù)部分舞箍。浮點(diǎn)數(shù)具體數(shù)值的實(shí)際表示舰褪。

嘗試把 3.1 轉(zhuǎn)換成二進(jìn)制存儲(chǔ):

  1. 是正數(shù)第一位是 0
  2. 3 轉(zhuǎn)換成二進(jìn)制 11疏橄。
  3. 0.1 轉(zhuǎn)換成二進(jìn)制占拍,__0.1 __ 轉(zhuǎn)換成 0.0625+0.007825+0.00390625... 即 2-3+2-4+2^7....,二進(jìn)制為 .00011001100110011001100 捎迫,是1100無限循環(huán)晃酒,保留到23位。(這里確實(shí)有點(diǎn)繞立砸,不理解的單獨(dú)查資料能更快了解掖疮。也就是這里導(dǎo)致小數(shù)在計(jì)算機(jī)里的存儲(chǔ)會(huì)不準(zhǔn)確,是一個(gè)近似值颗祝。
  4. 整數(shù)和小數(shù)合并為 11.0001100110011001100110 , 然后保證小數(shù)點(diǎn)以前只有一位數(shù)浊闪,1.10001100110011001100110 * 2^1
  5. 合并后小數(shù)點(diǎn)前的一位數(shù)是要舍去的螺戳,由于我們上一個(gè)步驟搁宾,小數(shù)點(diǎn)前的數(shù)字總會(huì)為 1,所以為了減少存儲(chǔ)我們舍去 . 前的為1數(shù)字倔幼,最后得 .100011001100110011001100 * 2^1盖腿。
  6. 指數(shù)轉(zhuǎn)換,由上一步得指數(shù)為 __2^1 __,由于規(guī)定 01111111 = 2^0(這樣的目的就是為了翩腐,指數(shù)可以為正也可以為負(fù))鸟款, 2^110000000 ,合并后得
    10000000 10001100110011001100110
  7. 添上第一位代表正負(fù) 0 10000000 10001100110011001100110 最終__ 3.1 __被用二進(jìn)制表達(dá)茂卦。

其中最重要的部分是小數(shù)轉(zhuǎn)二進(jìn)制何什,像 0.5、0.25等龙、0.125 這樣的小數(shù)轉(zhuǎn)化二進(jìn)制為 0.1处渣、0.01、0.001 蛛砰,但是 0.1罐栈、0.2 就不好表示了。如果不理解百度有在線二轉(zhuǎn)十進(jìn)制 地址

驗(yàn)證的網(wǎng)址:https://www.h-schmidt.net/FloatConverter/IEEE754.html

3.猜想

語言還沒有組織好泥畅。

我的博客:http://liangtongzhuo.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荠诬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涯捻,更是在濱河造成了極大的恐慌浅妆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件障癌,死亡現(xiàn)場(chǎng)離奇詭異凌外,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涛浙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門康辑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人轿亮,你說我怎么就攤上這事疮薇。” “怎么了我注?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵按咒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我但骨,道長(zhǎng)励七,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任奔缠,我火速辦了婚禮掠抬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘校哎。我一直安慰自己两波,他們只是感情好瞳步,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腰奋,像睡著了一般单起。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氛堕,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天馏臭,我揣著相機(jī)與錄音,去河邊找鬼讼稚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绕沈,可吹牛的內(nèi)容都是我干的锐想。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼乍狐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赠摇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浅蚪,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤藕帜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后惜傲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洽故,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年盗誊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了时甚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哈踱,死狀恐怖荒适,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情开镣,我是刑警寧澤刀诬,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站邪财,受9級(jí)特大地震影響陕壹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卧蜓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一帐要、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弥奸,春花似錦榨惠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耽装。三九已至,卻和暖如春期揪,著一層夾襖步出監(jiān)牢的瞬間掉奄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工凤薛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姓建,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓缤苫,卻偏偏與公主長(zhǎng)得像速兔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子活玲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容