我想知道如何將string x = "1f"
這樣的東西轉換爲int y = 0x1f
,我發現的每個主題都是通過將它轉換爲它的整數值(31)或將字符串轉換爲十六進制等效值"Hello" > 48656C6C6F
十六進制字符串到十六進制整數
std::stringstream Strm;
std::string Stng = "1f";
Strm << Stng;
int Hexa;
Strm >> std::hex >> Hexa;
cout << Hexa;
這最接近我能得到它(但實際上它只是將其轉化爲整數)
編輯:我想是我不知道我的問題,它必須被存儲爲整數,只能顯示爲十六進制,如果我添加std ::十六進制後cout,這是愚蠢的對不起
你只是想打印基數爲16?如果是這樣的話:cout << std :: hex << Hexa。注意:就處理器而言,「int y = 0x1f」轉換爲00000000 00000000 00000000 00011111(假設32位整數)。 – EHuhtala 2013-05-03 20:54:20
「它只是將其轉換爲整數」 - 這是可以預料的。沒有像十六進制整數這樣的東西。 – 2013-05-03 20:56:15
'int y = 0x1f'和'int y = 31'是相同的。 'int'沒有表達它的基數的概念。 – 2013-05-03 20:56:53