例如,以下語句如何相互對等?C整數文字如何工作?
一)0116 = 0x4E
B)97 = 00141 = 0x0061
C)45 = 0x2d = 0055
我用盡尋找它,但它仍然沒有任何意義,我。謝謝。
例如,以下語句如何相互對等?C整數文字如何工作?
一)0116 = 0x4E
B)97 = 00141 = 0x0061
C)45 = 0x2d = 0055
我用盡尋找它,但它仍然沒有任何意義,我。謝謝。
如果它以0x
0X
或開始時,它是一個十六進制數,即,。基地16
。
否則,如果它只有0
開始,這是一個八進制數,即。基地8
。
否則它是一個十進制數,即。基座10
(以下是非標準 - 一個gcc擴展)
如果它與0b
開始,它是一個二進制數,即,。基地2
。
C和C++沒有二進制整數文字(尚)。 –
@JoachimPileborg gcc支持'0b' http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html 不知道c標準是否同意 –
謝謝!我不明白,如果它從0開始,它是基數8.我只是假設它仍然是基數10. – user3277606
數從0開始的八進制數 以0x開頭數字是十六進制
我們需要兩個不同的數字系統之間和編程來區分,我們做這樣
,如果你想驗證這些等式你可以自己解決,也可以使用在線轉換器。我給你下面開始用0
是的,這意味着'0'是一個八進制文字,而不是十進制。 (這並不重要;它具有與小數相同的值。) –
是將它從八進制轉換爲十進制,我們得到正確的值 – Sahil
數字鏈接是八進制。在八進制0和7之間計數八進制數字雲:
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, ...
編號與0x
0X
或開始是十六進制的(十六進制)。十六進制使用數字和alpha值。計數十六進制雲:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, ...
因此,如何爲0116 == 0x4E ?
C編譯器會在0116
中看到0
,並知道將該數字中斷爲八進制。編譯器可以檢查不同的數字系統,因爲我們大多數人需要將它們轉換爲我們可以更好理解的東西。
轉換八進制轉換爲十進制可以做爲Σ(對於i = 0到n)的函數:一個我x8的我。在您的示例:
的1x8 = 64
的1x8 = 8
6×8 = 6
64 + 8 + 6 = 78
轉換十六進制到十進制可以是使用幾乎相同的公式完成,但您需要將每個字母轉換爲一個 i的一部分:a i x16 i。
4X16 = 64
14x16 = 14 //Ë == 14
64 + 14 = 78 10
顯然78 == 78,compilter只是不需要先進行轉換即可看到。
以'0'開頭的數字是八進制數字。 – ouah
http://en.cppreference.com/w/cpp/language/integer_literal –
將每個數字轉換爲二進制。 –