2014-02-16 182 views
4

我知道十六進制數通常在C/C++語言中以0x作爲前綴。 例如,0x5A表示十進制90。 但我看到一個使用單引號字符的示例代碼,其編號爲'\x'C++中0x和' x'有什麼區別?

BYTE outputBuffer[index++] = '\x5A'; // instead of 0x5A 

'\x5A'完全一樣0x5A意思?

如果是這樣,爲什麼會出現十六進制十進制形式的另一種方式?

+0

http://stackoverflow.com/questions/2547349/what-does-x-mean-in-cc – pa1geek

+1

六角不限制爲一個字節。 – chris

+0

非常好的回答:http://stackoverflow.com/a/14264498/1673391 –

回答

7

對於一個角色來說,兩者都非常平等。

但只有一個可以與其他正常字符混合成一個字符串。 "ABC\x5A"

而且只有一個可以用來初始化一個大的整數類型:long long x = 0x1234567812345678LL;

+4

在C++中,'\ x5A'的類型是'char',而0x5A的類型是'int'。他們不平等。 –

+0

@ C.R .:的確,他們只有價值平等,而不是類型平等。但在問題的背景下,被分配到一個固定類型的變量,我們只關心由於轉換範圍的擴大或縮小而發生的價值和任何價值調整。 –

相關問題