c ++如何将字符转换为十六进制

时间:2011-07-01 05:56:45

标签: c++ hex

我知道输出十六进制时我可以使用

cout<<hex<<(unsigned int)(unsigned char)ch<<endl 

但是我使用

从标准输入中获取了一个字符
cin.read((char*)&ch , sizeof(unsigned char))

这次如何将ch更改为hex

2 个答案:

答案 0 :(得分:3)

cin.read((char*)&ch , sizeof(unsigned char));
cout << hex << (unsigned int)(ch) << endl;

应该有用。

答案 1 :(得分:0)

如果您尝试将单个字符串转换为十六进制来进行数学运算,例如,您可以将ascii char表示转换为它的实际数字,其语句如下:

char x = 'A';
int y = x;
if(y > 47 && y < 58)  //this covers 0-9
   y = y - 48;
else if (y > 64 && y < 71) // this covers A-F
   y = y - 55;

并使用y作为新号码。如果您需要为一个以上的数字进行操作,可以将其置于循环中。