如何將具有十六進制值的變量unsigned char以十六進制值轉換爲變量int。我得到了:無符號字符十六進制到int十進制轉換C++
unsigned char length_hex = 0x30; // HEX
如何轉換爲int DEC?
int length_dec = length_hex; // With result length_dec = 48
如何將具有十六進制值的變量unsigned char以十六進制值轉換爲變量int。我得到了:無符號字符十六進制到int十進制轉換C++
unsigned char length_hex = 0x30; // HEX
如何轉換爲int DEC?
int length_dec = length_hex; // With result length_dec = 48
正如有些人評論說,轉換是自動的。嘗試:
int main (void)
{
unsigned char length_hex = 0x30;
printf("0x30 is char:%c and int:%d.",length_hex,length_hex);
return 0;
}
,看看你會得到什麼 - 當你把它轉換成一個char它的「0」(字符0),並作爲一個int它是48.此外,它其實並不重要,如果我救了常量0x30作爲int或char。只要看看:
printf("0x30 is char:%c and int:%d.",0x30,0x30);
'在ASCII代碼中的0x30'正好是char''0''我不明白這一點!所以我期望'0x30是char 0和int是48' –
正確,你的問題是什麼?我只是顯示轉換分別自動爲int和char。 – kabanus
的可能的複製[?爲什麼十六進制數字以0x前綴(http://stackoverflow.com/questions/2670639/why-are-hexadecimal-numbers-prefixed-with-0x) – Nikita
十六進制和十進制只是您查看數字的方式。無論如何它都以二進制存儲。不,你不需要任何轉換,它都是「自動」的。只要嘗試打印'length_hex'作爲'unsigned int'並查看結果(例如'std :: cout << static_cast(length_hex)') –
所以你基本上在最後一行回答了你自己的問題? :) –