用C語言編程時,比如說我有一個整數h作爲十六進制值,整數d作爲十進制數。我可以在h和d之間進行加減運算嗎?還是他們必須在同一個號碼系統?十進制數可以用十進制數加/減嗎?
回答
是的,你可以寫:
int x = 100 - 0x100 + 0100;
混合了十進制與十六進制和八進制。在計算髮生之前,所有的值都被轉換爲二進制數(編譯器將在本例中進行計算;它不會在運行時計算)。和任何常量可通過已分配適當的值的int
值被替換爲:
int d = 100;
int h = 0x100;
int o = 0100;
int x = d + h + o;
像基地10,16,8三人。 – chux 2015-02-11 02:20:45
爲什麼如果將1加到int'num'的十六進制值爲'0x7fffffff'我得到'-2147483648',如果我將它改爲'long'我得到正確的編號'2147483648''? – Zizoo 2017-05-04 20:57:27
@Zizoo:名義上,這是一個可以單獨提出/回答的新問題。如果你正在使用'sizeof(int)== 4 && sizeof(long)== 8'(例如64位Unix系統;不是Windows 64)的機器,那麼這就是預期的, 或多或少。正式地,當值爲'int'時,將1加到0x7FFFFFFF導致未定義的行爲,因爲它繞過(2^31)-1;通常情況下,它變爲0x80000000,這是最負的32位有符號整數(在2的補碼機器上)的十六進制表示。 _ [... continue ...] _ – 2017-05-04 21:04:59
是它們可以,例如
int x;
x = 0x0F + 10;
printf("%d\n", x);
輸出:
25
表示你使用並不重要,它最終都將轉換爲二進制。
- 1. 加/減十六進制
- 2. VBA隱藏十進制和十六進制的負數十進制數
- 3. 使用十進制或十六進制
- 4. 將十進制轉換爲十六進制和十六進制
- 5. 添加十六進制值以得到十六進制結果
- 6. 如何轉換OCaml中十六進制,十進制,十進制和二進制數之間的數字?
- 7. as3 - 按十進制整數十進制數的按鈕
- 8. 在intellij中可以同時將int看作十進制和十六進制嗎?
- 9. 用於大數字的十進制到十六進制的Python
- 10. 十六進制數字是負數嗎?
- 11. 使用十六進制而不是十進制更有效嗎?
- 12. 十六進制,八進制,二進制到十進制(C++)
- 13. 十六進制和十進制轉換
- 14. 我可以用二進制而不是十六進制嵌入數字嗎?
- 15. 十進制素數到二進制
- 16. 十進制和二進制數處理
- 17. 圖靈機可以使用十進制數嗎?
- 18. Android WifiManager - 以十六進制或不以十六進制
- 19. 將整數除以十進制數
- 20. 如何將數字(十進制)轉換爲二進制(二進制)數字和從二進制到十進制?
- 21. 加入十進制數用JavaScript
- 22. C:轉換十六進制值相同的十進制數
- 23. 將十六進制數轉換爲十進制格式
- 24. JSON數轉換成十進制十六進制值
- 25. 十六進制數轉換成十進制公式
- 26. HANA:十進制到十進制通過系統定義函數
- 27. 在Arduino上將整數/十進制轉換爲十六進制?
- 28. 選擇一個十六進制附近的十六進制數
- 29. 將十進制數轉換爲十六進制
- 30. 十六進制字符串到十六進制整數
給它一個鏡頭,看看! http://ideone.com/是一個在線編譯器,您可以在不安裝任何軟件的情況下使用這些測試程序。 – 2015-02-11 02:16:26
我認爲這個問題也混淆了「數字」和「數值」。 0x12,0d18,0o22和0b00010010都是代表相同「值」的「數字」。添加時,您可以添加值 - 不是數字。 – 2015-02-11 02:21:24
您在「數字」和「表示」之間混淆。在內部,電腦有「數字」。外部(你看到並鍵入)有「表示」。十進制是一種表示。十六進制是一種表示。即使是「Q」也是一種表現。如果你輸入一個十六進制表示和一個十進制表示(並以某種方式告訴計算機哪一個),它們都會被內部轉換爲「數字」,您可以添加或減少或不管其他內容,而不用擔心用於輸入數字的表示是十六進制或小數。 – 2015-02-11 02:21:28