比方說,我有十六進制A41B的二進制補碼形式,我想將它轉換爲十進制。通常,我會將其轉換爲二進制,翻轉所有位,添加一個,然後將其轉換爲十進制,並輸入正確的符號(正值或負值)。手動操作有更快的方法嗎?有沒有一種算法來手動將二進制的十六進制補碼轉換爲十進制數?
1
A
回答
3
您可以:
- 將其轉換爲十進制
- 減去2 n的結果,其中N是你的字大小(例如,16位字,減65536)
在你的榜樣,
0xA41B = 42011
42011 - 65536 = -23525
之前做減法,你會檢查符號位實際上是1.否則,你只會有一個正數。
1
0
如果出於某種原因不願或不能執行減法,其他答案建議,你可以把負數是這樣的:
- 翻轉位
- 添加一個
- 轉換爲十進制彷彿數分別爲正
- 添加負號
例如:-5是11111011
採用8位2的補碼。翻轉這些位並添加一個是00000101
,它是十進制的5。添加負號,你有-5。
相關問題
- 1. 將十六進制轉換爲二進制到十六進制?
- 2. 將十進制轉換爲十六進制和十六進制
- 3. 將十六進制(二進制補碼)轉換爲Java值
- 4. 將十進制轉換爲十六進制/二進制
- 5. 將十六進制轉換爲二進制和16位二進制補碼
- 6. 十六進制轉換爲二進制
- 7. 十六進制轉換爲二進制
- 8. 將十進制數轉換爲二進制/十六進制/八進制符號
- 9. 將八進制數轉換爲十進制和十六進制
- 10. 將十六進制轉換爲二進制,然後轉換爲十進制
- 11. 將十進制轉換爲二進制,八進制和十六進制?
- 12. 轉換二進制和十六進制沒有內置函數
- 13. 十六進制到二進制轉換
- 14. 轉換十六進制到二進制
- 15. 二進制到十六進制轉換
- 16. 有符號整數到二進制補碼十六進制
- 17. 十進制/十六進制/二進制轉換
- 18. C#System.OverflowException二進制到十進制和十六進制轉換
- 19. 將帶符號的十進制轉換爲使用二進制補碼編碼的十六進制
- 20. 二進制轉換爲十六進制和十六進制轉換爲二進制
- 21. 十六進制和十進制轉換
- 22. 轉換十六進制到十進制
- 23. 十進制數的二進制補碼
- 24. 轉換十進制轉換爲二進制補碼
- 25. 將十進制轉換爲二進制補碼,溢出
- 26. 將二進制補碼轉換爲十進制
- 27. 爲什麼printf自動將%x%o%d轉換爲十六進制十六進制和十二進制
- 28. 將字符串轉換爲十六進制到十六進制
- 29. 將excel中的Unicode十六進制數轉換爲十進制
- 30. 將二進制轉換爲十進制
這與將「正常」十六進制轉換爲十進制數據相同,除了必須考慮到如果最高有效位數> = 8,則需要從結果中減去2^16。 –