2014-09-21 66 views

回答

0

二進制小數的工作方式與它們在十進制,八進制或十六進制(或任何)數字系統中的做法類似,小數點後面的每個數字(或二進制/八進制/十六進制點)攜帶其自己的值。

在十進制中,我們說小數點右邊的第一位數值是1/10(或1x10^-1),第二位數值是1/100(或1x10^-2)。

二進制,而不是與10的工作,它與2的工作,所以二進制點後的第一位數值爲1/2(或1x2^-1),第二位數值爲1/4(也寫爲1x2^-2),每個'列'的指數在該點的右邊減1。

要轉換您的示例,第一個基本步驟是計算列值,然後我們簡單地將每個值添加到原始二進制數中存在1的值中(我向該二進制數中添加了一些額外的數字例如,以幫助解釋):

Binary:  1 1 0 0 1 . 1  0  0  0  
Value:  16 8 4 2 1 . 0.5 0.25 0.175 0.0625 
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      | | x x | . |  x  x  x 
Decimal: 16 + 8 + + + 1 . + 0.5 +  +  + 

所以二進制數11001.10 = 25.5十進制

您的問題不幸的是有點不清楚,所以我希望這是你要找的人,如果沒有答案,請爲您的問題添加一些更清晰的內容。

+0

我真的很喜歡你的答案本。謝謝!現在,如果我在MySQL中,在一個字節中具有整數位並且在BLOB字段的另一個字節中具有壓裂位。我用CONVERT(HEX(int_part),SIGNED)得到int部分,那麼壓裂部分呢? – vrltwe 2014-09-21 02:01:02