簡體   English   中英

使用浮點二進制格式的變量如何存儲值 0.0

[英]How does a variable using a Floating-point binary format stores the value 0.0

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

在此處輸入圖像描述

附言。 如果需要,請不要猶豫編輯這篇文章。 英語不是我的母語。

...前面的第一位...二進制點...不包括在內,因為它應該總是 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM