2015-02-05 87 views
1

我正在將十進制數轉換爲2的補碼二進制數。 我理解這個概念;將小數轉換爲2的補碼

  1. 轉換數爲十六進制(基數16)
  2. 將結果轉換成二進制(填充至8位)
  3. 反轉所有位並添加1

所以我一直試圖轉換92(基數爲10)

92 -> Hex = 5c 
5C == 5 12 -> Binary = 01011100 
Inverting = 10100011 
      +  1 
      =10100100 

但我用來檢查我的答案的在線轉換器說:01011100 我做錯了什麼?我知道最重要的位應該是0,因爲這個數字是正數。但除此之外,我很困惑。

更新

這是因爲正數不需要切換爲標誌的大小? 因此,在做2的補碼前後的數字保持不變?

含義,我得到的答案是其實的負面解釋; -92?

+0

記住如果你在MSB中有1,那麼你就是說這是2的恭維中的負數。 – JBaczuk

+0

對!我知道,但我想我可能會在我不需要的時候意外倒轉數字。 –

+0

我在這裏唯一的猜測是分配是以負92開始,即「A4」或「10100100」,然後獲得它的二進制補碼。 – dasblinkenlight

回答

2

只反轉它並在您嘗試表示負數時加1,正數用正常二進制表示。 (你只是在正數中減少範圍)。

+0

好的,所以我得到的數字確實是92的負數表示? –

+1

是的。你遵循正確的程序來表示2的恭維-92。 – JBaczuk