编一C++程序,输入数字,输出其十六进制值及ASCII字符

我编了,128之后的符号输不出了,十六进制需要的是0xXX形式,结果输出的只是两个数字而已,谁能将详细点,我是初学者

128已经超过char的范围了.

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
unsigned char c;

cin >> c;
cout << "0x" << hex << (int)c << dec << (int)c << endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-13
ASCII是一共128个, 后面输出的是特殊字符,无法输出,由特定的平台决定。

128一下的10进制数可以由两位16进制数表示,
用printf输出时,只有AB或类似的两位数。 0xAB是c编译器可以理解的格式,说明这是一个16进制数。

如果要这样输出0xAB的,改一下输出的语句printf("0x%x",a);
第2个回答  2008-03-13
要输出16进制的数字可以这样:
cout<<hex<<你要输出的数字;
相似回答