-5
A
回答
2
<<
是left-shift
運算符,它簡單地說,當應用到的數,由2^i
,其中i
是要移位的比特的數量相乘,例如:
1 << 3 = 8 (multiply 1 by 2^3)
2 << 4 = 32 (multiply 2 by 2^4)
和~
是NOT
運算符,它取每個位都在一個數字中並切換它。簡單來說,~x = -x - 1
例如:
~100102 = 011012
~8 = -9
現在來到你的問題,(~(1 << 3)) = (~8) = -9
。有關更多信息,請查看此答案:NOT(~) vs NEGATION(!)。
4
計算機中的數字存儲在2's complement form中。
您的原始編號是1,即二進制的0...0001
。我將跳到第4位到第30位,因爲它們都將爲零(考慮32位系統)。
做1 << 3
將產生0...1000
即+8。簡單來說,這意味着乘以2^i
,其中i = 3
在這裏。
現在,將其反轉爲1111 1111 1111 1111 1111 1111 1111 1000
,這是2的補碼形式的負數。
要得到數的值,下降的第一1(符號位),再次反轉整個號碼,並添加1
所以,再次反轉會給你0...1000
。加1就可以了,所以0...1001
。
這是爲9和符號是負的,因爲第一個符號位是1。
+0
現在,反過來得到1111 1111 1111 1111 1111 1111 1111 1000這是2的補碼形式的負數。當你反轉32位時,你爲什麼不反轉最後4位? – prashanth
相關問題
- 1. Hadoop - 工作如何執行 - 需要一步一步解釋
- 2. 請解釋一步一步的基本硒配置使用json
- 3. 有人可以請給我一步一步的說明如何獲得一個Java小程序正確簽署
- 4. 有人請解釋我有
- 5. 有人可以解釋如何做到在本教程最後一步
- 6. Ajax請求一步一步
- 7. 任何人都可以列出我可以得到維特比解碼器一步一步的算法嗎?
- 8. jquery如果有人瞭解這個網址請解釋我
- 9. 有人可以請解釋這一行
- 10. 如何從多步流水線函數的每一步獲得中間結果?
- 11. 你可以一步一步解釋這個過程嗎?
- 12. 通過hadoop訪問數據?一步一步的解釋
- 13. 在Android Studio中導入庫:需要一步一步的解釋
- 14. 需要解釋與巡航控制.net一步一步
- 15. 如何獲得jsonpCallback的同步結果?
- 16. 如何進一步篩選搜索步驟的結果?
- 17. 如何在Python中的每一步獲得「減少」的結果?
- 18. 有人請向我解釋fence_vmware_soap是如何工作的?
- 19. 將兩個步驟總結爲一步
- 20. 有人可以向我解釋爲什麼靜態同步代碼返回此結果嗎?
- 21. 爲什麼我們不能一步一步輸入和操作?
- 22. 解釋這個for循環技術的工作。它是如何工作的一步一步?
- 23. 有人可以給我一個一步一步教程ASP.NET登錄模塊
- 24. 有人可以解釋爲什麼我會得到一個空陣列嗎?
- 25. 解釋這一JsPerf.com結果
- 26. 有人能解釋一下這些ApacheBench結果的含義嗎?
- 27. 塊對象需要進一步解釋
- 28. 解釋該代碼(沒有得到結果,我需要)
- 29. 將mrjob步驟的結果作爲參數傳遞給下一步
- 30. 任何人都可以請解釋我如何「如果(blnRtrn == true)」的作品?
通常,數字的值'〜x'等於'-x - 1'。 '1 << 3'是'8','-8-1'是'-9'。 –