我正在將十進制數轉換爲2的補碼二進制數。 我理解這個概念;將小數轉換爲2的補碼
- 轉換數爲十六進制(基數16)
- 將結果轉換成二進制(填充至8位)
- 反轉所有位並添加1
所以我一直試圖轉換92(基數爲10)
92 -> Hex = 5c
5C == 5 12 -> Binary = 01011100
Inverting = 10100011
+ 1
=10100100
但我用來檢查我的答案的在線轉換器說:01011100 我做錯了什麼?我知道最重要的位應該是0,因爲這個數字是正數。但除此之外,我很困惑。
更新
這是因爲正數不需要切換爲標誌的大小? 因此,在做2的補碼前後的數字保持不變?
含義,我得到的答案是其實的負面解釋; -92?
記住如果你在MSB中有1,那麼你就是說這是2的恭維中的負數。 – JBaczuk
對!我知道,但我想我可能會在我不需要的時候意外倒轉數字。 –
我在這裏唯一的猜測是分配是以負92開始,即「A4」或「10100100」,然後獲得它的二進制補碼。 – dasblinkenlight