python雙精度浮點數用什麼表示

2022-02-27 07:26:51 字數 1823 閱讀 2576

1樓:

單精度浮點數在機內佔4個位元組,用32位二進位制描述。 雙精度浮點數在機內佔8個位元組,用64位二進位制描述。 對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。

但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)

2樓:幻化x星光螺

python原生浮點數型別只有一種,叫float,大小為24個位元組(我這裡python3.6是這樣,別的版本不清楚),本身就是雙精度(你打個特別長的小數,最後它會給你截止到15-16位有效數字,這是雙精度浮點數的典型特徵),不論你是多短的浮點數都是如此

python和別的語言不一樣,每個變數都是物件,而物件裡有各種雜七雜八的屬性方法,所以記憶體佔用比其他語言大得多

如果希望記憶體佔用更小,而有用單精度的需求,建議使用numpy等第三方庫,可以提供對變數型別大小的控制。

浮點數表示方法 50

3樓:喵喵喵

一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來儲存)。

m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。

如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。

擴充套件資料

浮點數就是利用指數達到了小數點「浮動」的效果。從而可以靈活地表達更大範圍內的數, 比如 :

3.6879 * 10 ^ 2 = 368.79

1.2345 * 10 ^ 3 = 1234.5

7.89 * 10 ^ 2 = 789

小數點的位置是不固定的。不過對於同一個浮點數,也有很多表達方式, 368.79 可以表達為:

3.6879 * 10 ^ 2

0.36879 * 10 ^ 3

36.879 * 10 ^ 1

由於其多樣性, 很多計算機廠商都設計了自己的表示浮點數的規則,以及對浮點數運算的細節。 多樣的規則對於程式的可靠性和移植性都是不利的。

4樓:

「浮點數」是計算機在使用中為了擴大數值的範圍所用的表示方法。它由符號位、階碼、尾數三部分組成。

例:一種8位元組(共64位)的浮點數格式

(1)符號位 0為正,1為負

(2-12)階碼 可表示0~2^11-1,即0~2047

(13-64)尾數 13位表示1/2,14位表示1/4,15位表示1/8……依次類推

浮點數的絕對值:(1+尾數)×2^(階碼-1023)

浮點數的絕對值範圍:

最大:(1.11…1)b×2^(2047-1023)=(1.11…1)b×2^1024

最小:(1.00…0)b×2^(0-1023)=2^-1023

(浮點數的規格化:化為尾數第一位為1的浮點數,小數點左移為正,右移為負)

你的問題解決如下:

1)最大正數:(1-2^-23)*2^127

最大負數:-2^-129

2)最小正數:2^-129

最小負數:-2^127

3)-(0.10…0)b×2^-126 ~ (0.11…1)b×2^128

為啥雙精度浮點數數值範圍為17E30817E

雙精度型別的數用8個位元組64位二進位制表示,雙精度數大約有16位十進位制有效數字,數值的表示範圍約為 1.7 10 308 1.7 10 308 同理浮點型別的數用4個位元組32位二進位制表示。這樣表示的數大約有7位十進位制有效數字,數值的表示範圍約為 3.4 10 38 3.4 10 38 長雙...

單精度的浮點數有效數字為什麼是七位

單精度數的尾數用23位儲存,加上預設的小數點前的1位1,2 23 1 16777216。因為 10 7 16777216 10 8,所以說單精度浮點數的有效位數是7位。雙精度的尾數用52位儲存,2 52 1 9007199254740992,因為10 16 9007199254740992 10 1...

浮點數所能表示的數值範圍和精度撒於什麼

浮點數所能表示的數值範圍和精度取決於階碼和尾數。階碼 採用指數的實際值加上固定的偏移值的辦法表示浮點數的指數,好處是可以用長度為 個位元的無符號整數來表示所有的指數取值,這使得兩個浮點數的指數大小的比較更為容易,實際上可以按照字典序比較兩個浮點表示的大小。這種移碼錶示的指數部分,中文稱作階碼。定點數...