中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python浮點數陷阱

發布時間:2020-07-06 14:13:12 來源:網絡 閱讀:524 作者:王首元 欄目:編程語言

先放一張圖
python浮點數陷阱
計算機內部對于浮點數處理是不夠精確的。

1、浮點數的二進制表示
整數部分:用十進制整數整除以2,得到商和余數,該余數就是二進制數的最低位,然后繼續用商整除以2,得到新的商和余數,以此類推,直到商等于0,由所有余數倒排組成了該整數的二進制表現形式。
小數部分:乘以2,取整數0或者1,剩下的小數繼續乘2一直重復,直到小數部分為0或達到指定的精度為止

2、存儲規則
由于Python封裝了C語言的特性,根據國際IEEE754標準進行存儲。
IEEE754標準包含一組實數的二進制表示法,由符號位、指數位、尾數位組成,各種精度各部分的位數如下:
python浮點數陷阱

3、轉換為IEEE754標準的二進制數
規格化
當尾數不為0時,尾數域的最高有效位為1,這稱為浮點數的規格化。否則,以修改階碼同時左右移動小數點位置的辦法,使其成為規格化數的形式。
32位浮點數:
python浮點數陷阱,S為符號位(0正1負),M為規格化后的小數尾數
64位浮點數:e=E-1023

移碼
在真值基礎上加2^n(機器字長為n+1),其中2^n>x≥-2^n

舉一個簡單例子:
1.5=[1.1],符號位為0,指數e=0,規格化后尾數為1.1。

尾數域M右側以0補全,得尾數域:
M=[100?0000?0000?0000?0000?0000]

階碼E:
E=[0]移?1=[10000000]?1=[01111111]

得1.5的機器碼:
1.5=[0011?1111?1100?0000?0000?0000?0000?0000]
十六進制表示為1.5=0x3fc00000。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合川市| 壤塘县| 五家渠市| 涟源市| 徐闻县| 阳东县| 宜昌市| 德江县| 高密市| 晴隆县| 兰考县| 阿城市| 肃南| 垦利县| 射阳县| 车致| 双流县| 吉水县| 成都市| 永福县| 松潘县| 武城县| 沈丘县| 繁昌县| 黎川县| 邢台县| 丰原市| 普定县| 巨野县| 安泽县| 邯郸市| 沐川县| 易门县| 嘉荫县| 缙云县| 祁连县| 垣曲县| 临洮县| 宁国市| 荥阳市| 庆阳市|