當我想計算0的補數時,我得到-1作爲答案。我認爲它應該是一個很大的數字,因爲它是11111111(我不知道有多少位被使用我只是寫在8)二進制數字系統。爲什麼C++返回此結果
-3
A
回答
10
使用unsigned
整數類型。有符號整數上的按位運算有很多實現定義的行爲。
0
當值以二進制補碼解釋時,所有設置的位都是-1
。
+1
難道不是相反嗎? 「當'所有位設置'被解釋爲2的補碼時,它表示值-1。」你不能真正「解釋一個整數」。 –
相關問題
- 1. C#爲什麼DownloadStringAsync不返回結果
- 2. 爲什麼此函數返回的結果比返回的結果要多?
- 3. 爲什麼此代碼返回沒有ViewName的視圖結果?
- 4. 爲什麼此DateTime減法操作返回無效結果?
- 5. 爲什麼此查詢返回「不正確」的結果?
- 6. 爲什麼此SQL返回錯誤的結果集?
- 7. 爲什麼這個MySQL查詢返回如此多的結果?
- 8. 爲什麼此存儲過程返回空結果?
- 9. 爲什麼此查詢返回太多結果?
- 10. 爲什麼此RegExp查詢返回所有結果?
- 11. 爲什麼此查詢不返回任何結果?
- 12. 爲什麼此查詢不返回結果?
- 13. PSEXEC返回垃圾結果。爲什麼?
- 14. 爲什麼Sphinxapi不返回結果?
- 15. Solr爲什麼返回否定結果?
- 16. 爲什麼ezSQL返回空結果集
- 17. 爲什麼Lucene.NET IndexSearcher返回零結果?
- 18. 爲什麼Hibernate返回隨機結果?
- 19. SQL爲什麼返回太多結果?
- 20. 爲什麼Postgres不返回結果?
- 21. 爲什麼DataPager.GetVisualDescendants()不返回結果?
- 22. 爲什麼sp_columns不返回結果?
- 23. 爲什麼結果返回0?
- 24. C++結構返回true,但爲什麼?
- 25. 爲什麼我不能返回$ .ajax結果,但可以返回$ http.post結果?
- 26. 爲什麼JS函數在C++中返回不同的結果?
- 27. 爲什麼Encoding.Default.GetBytes()在VB.NET和C#中返回不同的結果?
- 28. 爲什麼喜歡返回空而反過來返回結果?
- 29. 爲什麼GetFieldValue爲此DateTime返回null?
- 30. 爲什麼xmllint返回此爲無效
所有的二進制補碼爲-1。 –