【问题标题】:c++ how to convert a character to hexc ++如何将字符转换为十六进制
【发布时间】:2011-07-01 05:56:44
【问题描述】:

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

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

但我使用

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

这次如何将ch 改为hex

【问题讨论】:

  • 您的意思是要将其转换为string
  • 你不应该需要在 cout 线上投两次,如果有的话

标签: c++ hex


【解决方案1】:

如果您尝试将单个字符转换为十六进制以使用 if 进行数学运算,您可以使用如下语句将 ascii 字符表示转换为其实际数字:

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 作为您的新号码。如果您需要多于一位数,您可以将它放在一个循环中。

【讨论】:

    【解决方案2】:
    cin.read((char*)&ch , sizeof(unsigned char));
    cout << hex << (unsigned int)(ch) << endl;
    

    应该可以。

    【讨论】:

    • 我需要将 ch 转换为 hex 而不是输出到 hex
    • 它已经是十六进制/十进制/二进制/八进制/你想要的任何数字系统。将其转换为十六进制后,您想用它做什么?
    • 不,但是你想用它做的任何数字都可以不管基数(几乎可以肯定实际上是基数 2)你通常只需要转换为输出
    猜你喜欢
    • 2018-01-31
    • 2012-10-16
    • 2013-02-07
    • 2017-08-23
    • 2014-03-19
    • 2013-11-12
    • 2014-06-09
    • 2015-10-30
    相关资源
    最近更新 更多