首页
/
每日頭條
/
圖文
/
為什麼浮點數表示範圍更大
為什麼浮點數表示範圍更大
更新时间:2025-12-24 05:58:35

為什麼浮點數表示範圍更大?1、什麼是浮點數?我們知道,數學中并沒有浮點數的概念,雖然小數看起來像浮點數,但從不這麼叫那為什麼計算機中不叫小數而叫浮點數呢?,我來為大家科普一下關于為什麼浮點數表示範圍更大?以下内容希望對你有幫助!

為什麼浮點數表示範圍更大(為什麼計算機中不叫小數而叫浮點數)1

為什麼浮點數表示範圍更大

1、什麼是浮點數?

我們知道,數學中并沒有浮點數的概念,雖然小數看起來像浮點數,但從不這麼叫。那為什麼計算機中不叫小數而叫浮點數呢?

因為資源的限制,數學中的小數無法直接在計算機中準确表示,為了更好地表示它,計算機科學家們發明了浮點數,這是對小數的近似表示。

2、IEEE754是什麼?

知道了浮點數的概念,但需要确定一套具體的表示、運算标準,其中最有名的就是IEEE754标準。

本文的讨論都基于IEEE754标準,這也是目前各大編程語言和硬件使用的标準。

3、浮點數的構成

浮點數是指用符号、尾數、基數和指數這四部分來表示的小數。

浮點數

根據浮點數的組成,因為是在計算機中表示浮點數,基數自然是2(不存儲),因此IEEE754浮點數隻關注符号、尾數和指數三部分。

浮點數在計算機中的存儲方式遵循IEEE754浮點數計數标準,可以表示為:

浮點數

類似于數學課本上所學的科學計數法表示方式:有效數字 指數位。

因此,隻要給出:符号(S)、階碼部分(E)、尾數部分(M)這三個信息,一個浮點數的表示就确定下來了。一般IEEE754浮點數有兩種類型,單精度浮點數(float)和雙精度浮點數(double),還有其他的,不常用。單精度浮點數使用4字節表示,雙精度浮點數使用8字節表示。所以float和double這兩種類型的浮點數在計算機中的存儲結構如下圖:

單精度浮點數

雙精度浮點數

符号位:0表示正數,1表示負數。

階碼部分(指數部分):對于float型浮點數,指數部分8位,我們知道,在十進制的科學計數法中,指數可以是負數,而計算機存儲浮點數的“指數部分”又是一個無符号的整數,因此,IEEE754标準規定,指數必須減去一個偏移值而得到真實的“指數值”。

偏移值的計算公式:2^(e-1) -1, e為階碼(指數)的位數,即為8,因此偏移值是2^(8-1) -1=127。

IEEE754規定,2^(e-1) -1的值是 0,小于這個值表示負數,大于這個值表示正數。因此,對于單精度浮點數而言, 2⁸⁻¹-1= 127 是 0;雙精度浮點數,2¹¹⁻¹-1 = 1023 是 0。

沒看懂?舉個栗子。

比如十進制數 0.15625,轉為二進制是 0.00101。為了讓第 1 位為 1,執行邏輯右移 3 位,尾數部分成為 1.01,因為右移了 3 位,所以指數部分是 -3。

根據 IEEE754 的定義,單精度浮點數情況下,-3 的實際值是 127 - 3 = 124。明白了嗎?127 表示 0,124 就表示 -3 了。

如果你還不理解,想想這個問題。

如果讓你用撲克牌(A ~ K,也就是 1 ~ 13)來表示支持負數的。怎麼辦?我們會選擇一個中間的數,比如 7 當做 0,因此 10 就是 3,4 就是 -3。現在理解了吧!

那為什麼單精度浮點數指數偏移值是127呢?

由于篇幅有限,這個留給大家自行查找資料。

尾數部分:浮點數的名稱由來在于小數點的位置是浮動的,比如 7.5x10、0.75 x10² 等表示法,值一樣,但小數點位置不一樣。在具體存儲時,需要固定一種形式,這叫做尾數的标準化。

IEEE754 規定,在二進制數中,通過移位,将小數點前面的值固定為 1。IEEE754 稱這種形式的浮點數為規範化浮點數。

因為IEEE754規定第 1 位永遠為 1,因此可以省略不存。

對于float型浮點數,尾數部分23位,換算成十進制就是2^23=8388608,所以十進制精度最多7位。

4、實例講解

講解之前先熟悉一下進制轉換:

二進制轉十進制

和整數轉換一樣,采用各位數值和位權相乘。比如:

(0.101)₂ = 1×2⁻¹ 0×2⁻² 1×2⁻³ = (0.625)₁₀

記住小數點後第一位是從 -1 開始即可。

十進制轉二進制

十進制整數轉二進制采用“除 2 取餘,逆序排列”法。例如十進制數 11 轉為二進制:

11/2=5 … 餘1

5/2=2 … 餘1

2/2=1 … 餘0

1/2=0 … 餘1 (1除以2不夠除,也就是商為0,餘數為1-0=1)

所以 (11)₁₀ 的二進制是 (1011)₂

但如果十進制是小數,轉為二進制小數如何做?

采用“乘 2 取整,順序排列”。讓小數一直乘2,小于1則用結果繼續乘,大于1則用結果減1繼續乘,等于1則結束。

例如十進制小數 0.625 轉為二進制小數:

0.625*2=1.25 … 取整數部分1

0.25*2=0.5 … 取整數部分0

0.5*2=1 … 取整數部分1

順序排列,所以 (0.625)₁₀ = (0.101)₂

如果一直不能等于1怎麼辦,會有什麼影響?

暫且擱置不講。

開始講解實例:例如 178.125

1、分别把浮點數的整數部分和小數部分轉換成2進制。

整數部分:

178/2=89 … 餘0

89/2=44 … 餘1

44/2=22 … 餘0

22/2=11 … 餘0

11/2=5 … 餘1

5/2=2 … 餘1

2/2=1 … 餘0

1/2=0 … 餘1

逆序排列,所以 (178)₁₀ 的二進制是 (10110010)₂

小數部分:

0.125*2=0.25 … 取整數部分0

0.25*2=0.5 … 取整數部分0

0.5*2=1 … 取整數部分1

順序排列,所以 (0.125)₁₀ = (0.001)₂

合起來即是:10110010.001

2、轉換成計算機存儲形式的二進制浮點數

把小數點移動到整數位隻有1,即為:1.0110010001*2^111,111是二進制,換算成十進制為7,由于左移了7位,所以是111。

3、階碼(指數)

階碼(指數)的計算公式:階數(指數) 偏移量(單精度浮點數指數偏移值是127)

即:111 01111111=10000110 (7 127=134)

4、尾數

小數點後面的數,即0110010001

小數點前面的1去哪裡了?由于尾數部分是規格化表示的,最高位總是1,所以省略不存。這樣尾數部分多了 1 位,提高了精度。

5、符号位

由于浮點數是正數,故為0(負數為1)

6、結果

最終結果為:

(178.125)₁₀ = (01000011001100100010000000000000)₂

單精度浮點數為32位,不夠32位後面補0。

0為什麼補在後面?

因為是尾數部分,補在後面比補在前面對實際數值影響比較小。

(178.125)₁₀ = (01000011001100100010000000000000)₂

2進制轉換16進制如下:

0100 4

0011 3

0011 3

0010 2

0010 2

0000 0

0000 0

0000 0

16進制為43322000

參考了網絡上有關浮點數轉換的文章,加上個人的理解,整理成文!

如有侵權,請告知!謝謝!

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
一拳十大最強s級英雄(新英雄協會12位S級解析)
一拳十大最強s級英雄(新英雄協會12位S級解析)
  關注ONE老師原作版一拳超人漫畫的小夥伴,想必對新英雄協會NEO并不陌生。作為英雄協會的對家,它不僅網羅了脫離英雄協會的原S級英雄,更有一些已出場人物的關系者包括在其中。本篇拾溜就來介紹将成為新英雄協會的12位S級英雄的強力角色,内容僅供參考。      殺手艾(殺し屋エー)   成為英雄之前,他是特A級懸賞犯,雖然相比S級的索尼克低一級,他仍擁有對于擊...
2025-12-24
那些年看過的超好看的泰劇(這些甜到令人心動的泰劇你看過嗎)
那些年看過的超好看的泰劇(這些甜到令人心動的泰劇你看過嗎)
  最近飯哥發現了一部高顔值的泰劇《逐月之月》,這部劇剛開始光看劇照就被男主的顔值迷得不要不要的~雙向暗戀的設定簡直太戳萌點了,現在隻更新到第二集,等待更新日子太難熬。同時呢,飯哥也整理了幾部同樣甜到令人心動的泰劇,和大家一起分享。   《逐月之月》   《逐月之月》根據泰國暢銷小說《Two Moons》改編,主要講述了一個理工學院院草暗戀校草學長的故事,由...
2025-12-24
棗莊市東湖公園在哪裡(東湖公園彼岸花競相開放)
棗莊市東湖公園在哪裡(東湖公園彼岸花競相開放)
  棗莊市市中區:東湖公園彼岸花競相開放眼下,在棗莊市市中區東湖公園道路兩旁,如果你用心就會看到,一片片、一簇簇生在枝頭鮮紅的花朵正在陸續開放。它排列如傘,絲光閃閃、花瓣朝後反卷,形成燈籠狀,從花瓣中心迸射出幾支長長的蕊絲,仿佛煙花一般,十分豔麗。               這種美麗的花叫中國石蒜,為東亞特有植物,人們通常稱為彼岸花。石蒜屬植物葉片于花前或...
2025-12-24
德語日常會話用語(德語學習我很性感)
德語日常會話用語(德語學習我很性感)
  Emil:Wo warst du? (你去哪了?)   Ich bin in die Toilette gegangen.:小明   Emil:Was zur Hölle?! (WTF?)   其實小明想說:Ich bin auf die Toilette gegangen. ——我剛去廁所了。。。   但是表達的實際意思卻是:我剛去了馬桶裡。     ...
2025-12-24
上海首套房契稅交多少錢(上海首套房契稅優惠繼續實施)
上海首套房契稅交多少錢(上海首套房契稅優惠繼續實施)
     9月1日起,《契稅法》正式施行。   關于之前的上海住房契稅優惠是否繼續?成為近期大家重點關注的話題。終于,财政部官網最新公告為我們揭開了這個答案。   8月30日,财政部稅政司網站發布了《關于契稅法實施後有關優惠政策銜接問題的公告》(财政部 稅務總局公告2021年第29号),《公告》明确了《中華人民共和國契稅法》實施後繼續執行的契稅優惠政策。  ...
2025-12-24
Copyright 2023-2025 - www.tftnews.com All Rights Reserved