1
A
回答
4
負整數通常以2的補碼錶示形式存儲,這意味着作爲m位數的-x被存儲爲2 m -x。這就是名字two的補充來自:添加x結果在兩個完整的權力。
假設我們使用32個比特,-3存儲爲2 -3 = 4294967293.
所以,-3×-3 = 4294967293×4294967293 = 18446744047939747849.但這數目不適合32位。它溢出了,我們剩下最後的32位。這些位自然編碼數字9.
你想看到它在二進制?好。 -3是2 -3是11111111111111111111111111111101 。
11111111111111111111111111111101×11111111111111111111111111111101 =
1111111111111111111111111111101000000000000000000000000000001001
(32 msb) (32 lsb)
結果的最低的32位是00000000000000000000000000001001 ,這是數字9
2
你似乎在尋找方法,以在2's complement表示的值進行乘法......
這web page from Karen Miller, at U. of Wisconsin提供了多種的這些方法,包括那些不要求首先將數字轉換成它們的逆。
相關問題
- 1. 二進制負整數
- 2. 負數的定點乘法
- 3. 轉換負十進制數二進制數
- 4. 獲得負數的二進制補碼的十六進制
- 5. 負數十進制到二進制c代碼
- 6. 遺傳算法二進制編碼負整數
- 7. 乘法與負數組裝,並導致
- 8. 兩個int的乘法得到負數
- 9. 如何將負數小數轉換爲二進制
- 10. Two's Complement,減去兩個負數的二進制數
- 11. 使用二進制補碼的負整數的Perl函數
- 12. 十六進制數字是負數嗎?
- 13. 乘法結果爲負零
- 14. 負數除法
- 15. 64位二進制補碼形式的負整數
- 16. 如何將負二進制數轉換爲其格雷碼
- 17. 以二進制補碼錶示格式負整數
- 18. 哈斯克爾負十進制數
- 19. 二進制乘法器的C++實現
- 20. Kadane算法負數
- 21. 在Python中乘以二進制數字
- 22. 如何檢查二進制補碼減法方程的負解?
- 23. 負數
- 24. VBA隱藏十進制和十六進制的負數十進制數
- 25. 正數到負數
- 26. 正數//負數
- 27. 乘法後的雙值負-Java
- 28. 檢測負數
- 29. 帶符號的二進制乘法和帶符號的二進制除法
- 30. jquery - 只允許負數,正數或十進制數驗證
完美解釋!雖然,我想更多地瞭解2m-x,因爲我提到的這本書沒有提及它。感謝您的幫助。 – 2013-02-22 06:30:36
使用m位整數進行計算是以2πm爲模的計算來實現的,所以-x和-x + 2^m是相同的東西。 – Joni 2013-02-22 07:07:46