簡體   English   中英

小數的二進制補碼

[英]Two's Complement of fractional numbers

幾個星期以來,我一直在 web 周圍尋找這個問題的解決方案,但沒有任何成功。

我的大學教授告訴我,要將帶有小數部分的二進制數轉換為二進制補碼中的負數,我們必須這樣做:

1)將數字從以10為底的數字轉換為以2為底的數字(+4.25)=(0100.0100)

2)我們現在唯一需要轉換為二進制補碼的部分是點之前的部分。

0100 -> 1011 -> 1011 + 1 -> 1100

所以對他來說,二進制補碼中的 -4.25 是 (1100.0100),小數部分沒有任何轉換。

對我來說,這個解決方案是錯誤的,因為如果我們嘗試將這兩個數字相加,我們會得到

0100.0100 + 1100.0100 = 0000.1000

那是 0.5 而不是 0

對於一小部分,您所做的與普通 integer 完全相同,這意味着將所有位反轉並 +1 為您的表示的最低有效位:
4.25 = 0100.0100
-4.25 = 1011.1100
也想不出你教授的意思。

暫無
暫無

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

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