我正在學習計算機科學書中的Integer數據格式,據我所知,無論是正數還是負數,整數的二進制表示都是讓最左邊的位(msb)爲0表示正數或1表示正數消極的,讓我們說在一個8位計算機中,我怎麼知道它是在談論10000010 - 130以10爲底,還是指的是負2? 我可能是錯的,如果我請糾正我。如何知道它是一個正數還是負數還是指的是二進制數字?
1
A
回答
2
看一看發佈這個問題的答案:Negative numbers are stored as 2's complement in memory, how does the CPU know if it's negative or positive?
CPU使用一種叫做操作碼,以確定哪些功能操縱內存位置時,它會採取(在這種情況下,價值10000010) 。這是CPU內部的功能,可以將其作爲負數或正數來操作。 CPU無權訪問該數字是否帶符號或無符號 - 它在處理該數字時使用操作碼來確定它是否應該是帶符號或無符號操作。
3
如果你只是在某處看到字符串10000010
,我不知道......寫在牆上什麼的,你怎麼知道如何解釋它?你可能會說,嘿,這是千萬和十(你認爲它是基數爲10),或者你可能會說嗨,那是-126(你認爲它是二進制補碼二進制),或者你可能會說這是正數130(你認爲這是標準的二進制)。
從理論上講,無論做什麼解釋,它都是如何解釋的。
因此,當一臺計算機拿着8位數據時,它是如何解釋它的。
現在,如果你正在編程,你可以告訴計算機如何你想要的東西解釋。例如,在C++
// char is 1 byte
unsigned char x = 130u;
在這裏,我已經告訴編譯器將130 無符號成一個字節,所以計算機將存儲10000010
,將它解釋爲價值130
現在考慮
// char is 1 byte
char x = -126;
在這裏,我已經告訴編譯器將-126 簽署成一個字節,所以計算機將重新存儲10000010
但這一次它會將其解釋爲值-126。
相關問題
- 1. Python:如何檢查簽名的數字是正數還是負數還是無?
- 2. 有辦法知道數據是十進制還是二進制還是十六進制?
- 3. 如何判斷int數是奇數還是偶數? (二進制)
- 4. 數學檢查數字是正數,負數還是0
- 5. 給定一個XML流如何知道它是二進制XML還是非二進制XML流?
- 6. 如何讓我的用戶知道他們輸入了多少個數字,無論是負數還是負數
- 7. Javascript - 查找數字是正數還是負數
- 8. 如何檢查一個有符號的整數是負數還是正數?
- 9. 檢查一個Case語句字段是正數還是負數Sql
- 10. 檢查整數是正數還是負數 - Objective C
- 11. 如何知道一個數字是正或負或0
- 12. 我如何知道一個數字是八進制數?
- 13. 如何知道DirectoryEntry是一個用戶還是一個組?
- 14. 如何知道函數是通過表單還是API調用
- 15. 如何知道C++/CLI反射參數是long還是int?
- 16. 如何知道數據庫觸發器是DROP_TABLE還是ALTER_TABLE?
- 17. readdir:我怎麼知道它是一個文件還是目錄
- 18. 如何確定一個十六進制數是否是負數?
- 19. NaN顯然是一個數字,還是它?
- 20. 是數字,aplha還是數學符號
- 21. 如何知道「.exe」進程是用C++還是C#編寫的?
- 22. 創建JButton,知道它是正確還是左鍵單擊
- 23. JavaScript語法:什麼是({})它是一個函數還是對象?
- 24. 判斷一個數字是奇數還是偶數
- 25. 如何找到給定的數字是八進制還是不是?
- 26. 如何知道它是新客戶還是編輯客戶
- 27. 如何知道:它是手機還是平板電腦?
- 28. 如何知道它是放大還是縮小flex/air TransformGestureEvent
- 29. 在NSDateComponents中,您如何知道它是AM還是PM?
- 30. 我如何知道它是Windows服務器還是unix?