基本上我現在很困惑,在stackoverflow或谷歌搜索上找不到任何有用的東西。我一直在閱讀有關計算機如何以二進制格式存盤不同資料型別的資訊,以更好地理解 C 編程和有關計算機科學的一般知識。我想我理解浮點數是如何作業的,但據我所知,小數點(或二進制點 idk)前面的第一位不包括在內,因為它應該總是 1,因為我們將小數點移到第一位從左到右的值為 1。在那種情況下,由于我們不存盤第一位,我們如何能夠區分存盤值 1.0 和 0.0 的浮點變數。

附言。如果需要,請不要猶豫編輯這篇文章。英語不是我的第一語言。
uj5u.com熱心網友回復:
... 前面的第一位 ... 二進制點 ... 不包括在內,因為它應該總是 1 ...
并非總是如此。
對于常見的浮點格式,如float32,當偏置指數為 (0) 時,有效數字(錯誤地稱為尾數)具有前導0而不是1。那時,有偏指數的 編碼方式也不同。
“零”通常被編碼為全零位模式。
v--- Implied bit
0 11111110 (1) 111_1111_1111_1111_1111_1111 Maximum value (~3.4e38)
0 01111111 (1) 000_0000_0000_0000_0000_0000 1.0
0 00000001 (1) 000_0000_0000_0000_0000_0000 smallest non-zero "normal" (~1.18e-38)
0 00000000 (0) 111_1111_1111_1111_1111_1111 largest "sub-normal" (~1.18e-38)
0 00000000 (0) 000_0000_0000_0000_0000_0001 smallest "sub-normal" (~1.40e-45)
0 00000000 (0) 000_0000_0000_0000_0000_0000 zero
-0.0,支持時與 0.0 相同,符號位為 1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460302.html
上一篇:檔案更新laravel8未定義變數:檔案名和檔案路徑
下一篇:如何列印python變數的值
