摘要:一復(fù)習(xí)進(jìn)制轉(zhuǎn)進(jìn)制整數(shù)部分除取余,逆序小數(shù)部分乘取整,正序在線工具二了解雙精度浮點(diǎn)數(shù)規(guī)范通過(guò)進(jìn)制的科學(xué)計(jì)數(shù)法存儲(chǔ)。最終可表示為圖片來(lái)源其中,,都是實(shí)際存儲(chǔ)科學(xué)計(jì)數(shù)法的值。
一、復(fù)習(xí)10進(jìn)制轉(zhuǎn)2進(jìn)制
1)整數(shù)部分:除2取余,逆序
2)小數(shù)部分:乘2取整,正序
在線工具
和10進(jìn)制的科學(xué)計(jì)數(shù)法類似,二進(jìn)制的科學(xué)技術(shù)法格式為1.xxx*2^N。其中需要留意下二進(jìn)制科學(xué)計(jì)數(shù)法的整數(shù)部分都是1,所以在存儲(chǔ)時(shí)省略整數(shù)部分1。
2) 格式:符號(hào)位+指數(shù)位+尾數(shù)位符號(hào)位S:第 1 位是正負(fù)數(shù)符號(hào)位(sign),0代表正數(shù),1代表負(fù)數(shù)
指數(shù)位E:中間的 11 位存儲(chǔ)指數(shù)(exponent),用來(lái)表示次方數(shù)
科學(xué)計(jì)數(shù)法中指數(shù)E是可以為負(fù)數(shù)的,在表示負(fù)的指數(shù)時(shí)IEEE754標(biāo)準(zhǔn)引入了一個(gè)偏移量1023,在存儲(chǔ)指數(shù)時(shí)加上該偏移量把負(fù)數(shù)E轉(zhuǎn)成正數(shù)。這就導(dǎo)致11位的指數(shù)能夠表示指數(shù)的范圍是[-1023, 1024]。
尾數(shù)位M:最后的 52 位是尾數(shù)(mantissa),超出的部分自動(dòng)進(jìn)一舍零,沒(méi)有填滿的部分自動(dòng)補(bǔ)0
如10進(jìn)制數(shù)400.12,用10進(jìn)制科學(xué)計(jì)數(shù)法表示為:4.0012*10^2,。其中"0012"就是尾數(shù)部分。
最終可表示為(圖片來(lái)源):
其中S,E,M都是實(shí)際存儲(chǔ)科學(xué)計(jì)數(shù)法的值。
如10進(jìn)制4.5轉(zhuǎn)成2進(jìn)制為:
// Step1 轉(zhuǎn)成二進(jìn)制 100.1 // Step2 轉(zhuǎn)成二進(jìn)制科學(xué)計(jì)數(shù) 1.001*2^2 S = 0 E = 2 + 1023 = 2015 M = 001 // 整數(shù)1被省略了
形象的查看存儲(chǔ)情況,可參考這里
3) 有限集合IEEE754能表示的實(shí)數(shù)數(shù)量是有限的,假設(shè)MAX_VALUE,MIN_VALUE分別表示其表示的最大正數(shù)和最小正數(shù),那有限集合可表示為:
[-MAX_VALUE, -MIN_VALUE] U [MIN_VALUE, -MAX_VALUE]幾個(gè)有趣的問(wèn)題 1) 0.1 + 0.2 !== 0.3
0.1,0.2和0.3在轉(zhuǎn)成二進(jìn)制時(shí)都是無(wú)限循環(huán)的,在存儲(chǔ)時(shí)會(huì)失去精度,0.1+0.2在運(yùn)算時(shí)也會(huì)失去精度,導(dǎo)致結(jié)果不等于0.3。
2) 給一個(gè)數(shù)字加上一個(gè)非0的增量還等于本身這個(gè)數(shù)字1 + Number.MIN_VALUE/2 === 1
這個(gè)增量如果小于JS能表示的最小浮點(diǎn)數(shù)就會(huì)視為0,加上這樣的數(shù)等于加上0。
3) JS最大整數(shù)為啥是2^53-1而不是2^52-1尾數(shù)占用52個(gè)bit,再加速省略的那個(gè)bit(見(jiàn)2.1)正好53個(gè)bit。
4)JS可以精確的表示哪些小數(shù)呢小數(shù)部分是這種格式的都可以精確表示。
1/Math.pow(2, N), 其中N是(0, 1024)區(qū)間的整數(shù)。
如分?jǐn)?shù)1/2,1/4, 1/8。
參考抓住數(shù)據(jù)的小尾巴 - JS浮點(diǎn)數(shù)陷阱及解法
該死的IEEE-754浮點(diǎn)數(shù),說(shuō)「約」就「約」,你的底線呢?以JS的名義來(lái)好好查查你
IEEE 754 計(jì)算器
IEEE 754 二進(jìn)制表示
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/107293.html
摘要:推導(dǎo)為何等于在中所有數(shù)值都以標(biāo)準(zhǔn)的雙精度浮點(diǎn)數(shù)進(jìn)行存儲(chǔ)的。先來(lái)了解下標(biāo)準(zhǔn)下的雙精度浮點(diǎn)數(shù)。精度位總共是,因?yàn)橛每茖W(xué)計(jì)數(shù)法表示,所以首位固定的就沒(méi)有占用空間。驗(yàn)證完成的最大安全數(shù)是如何來(lái)的根據(jù)雙精度浮點(diǎn)數(shù)的構(gòu)成,精度位數(shù)是。 閱讀完本文可以了解到 0.1 + 0.2 為什么等于 0.30000000000000004 以及 JavaScript 中最大安全數(shù)是如何來(lái)的。 十進(jìn)制小數(shù)轉(zhuǎn)為二...
摘要:而的浮點(diǎn)數(shù)設(shè)置的偏移值是,因?yàn)橹笖?shù)域表現(xiàn)為一個(gè)非負(fù)數(shù),位,所以,實(shí)際的,所以。這是因?yàn)樗鼈冊(cè)谵D(zhuǎn)為二進(jìn)制時(shí)要舍入部分的不同可能造成的不同舍 IEEE 754 表示:你盡管抓狂、罵娘,但你能完全避開我,算我輸。 一、IEEE-754浮點(diǎn)數(shù)捅出的那些婁子 首先我們還是來(lái)看幾個(gè)簡(jiǎn)單的問(wèn)題,能說(shuō)出每一個(gè)問(wèn)題的細(xì)節(jié)的話就可以跳過(guò)了,而如果只能泛泛說(shuō)一句因?yàn)镮EEE754浮點(diǎn)數(shù)精度問(wèn)題,那么下文還是...
摘要:類型使用的就是標(biāo)準(zhǔn)中的雙精度浮點(diǎn)數(shù)。數(shù)字的許多特性都依賴于此標(biāo)準(zhǔn),例如令人費(fèi)解的不等于這篇文章介紹標(biāo)準(zhǔn)中雙精度浮點(diǎn)數(shù)二進(jìn)制儲(chǔ)存格式,并由此推出中數(shù)字的一些特性。 Javascript 作為一門動(dòng)態(tài)語(yǔ)言,其數(shù)字類型只有 number 一種。 nubmer 類型使用的就是 IEEE754 標(biāo)準(zhǔn)中的 雙精度浮點(diǎn)數(shù)。Javascript 數(shù)字的許多特性都依賴于此標(biāo)準(zhǔn),例如令人費(fèi)解的 0.1+0...
摘要:如題先陳述下問(wèn)題背景偶爾測(cè)測(cè)自己寫的計(jì)算器,隨便輸入玩嘛,然后發(fā)生下面詭異的事情當(dāng)我從一個(gè)輸入到十個(gè)的時(shí)候,過(guò)程顯示都是正確的,像這樣繼續(xù)輸入一個(gè)的時(shí)候,然后就這個(gè)樣子了什么原因呢看了下自己的代碼,代碼重要部分長(zhǎng)這樣的這里用了一下強(qiáng)制轉(zhuǎn)化為 如題 先陳述下問(wèn)題背景 偶爾測(cè)測(cè)自己寫的計(jì)算器,隨便輸入玩嘛,然后發(fā)生下面詭異的事情:當(dāng)我從一個(gè) 1 輸入到十個(gè) 1 的時(shí)候,過(guò)程顯示都是正確的...
摘要:數(shù)字?jǐn)?shù)字都是浮點(diǎn)數(shù),按照標(biāo)準(zhǔn)進(jìn)行存儲(chǔ)。因此,只有偶數(shù)可以在范圍內(nèi)表示。但只有超過(guò)指數(shù)的上限才稱為中的溢出。結(jié)論在這篇博文中,我們研究了如何將其浮點(diǎn)數(shù)轉(zhuǎn)換為位。 JavaScript中的所有數(shù)字都是浮點(diǎn)數(shù)。這篇博客文章解釋了這些浮點(diǎn)數(shù)如何在64位二進(jìn)制內(nèi)部表示。由于特別考慮,本文中的數(shù)字將用整數(shù)表示,以便在閱讀本文后,您將了解在以下交互中會(huì)發(fā)生什么: (譯者注:浮點(diǎn)數(shù)并不一定等于小數(shù),定...
閱讀 967·2021-11-24 09:39
閱讀 3396·2021-10-27 14:20
閱讀 2326·2019-08-30 14:08
閱讀 3368·2019-08-29 16:34
閱讀 2182·2019-08-26 12:14
閱讀 2109·2019-08-26 11:54
閱讀 2779·2019-08-26 11:44
閱讀 2480·2019-08-26 11:38