C++怎么用一个数的ACSII码显示出这个字符

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:54:56
我想知道,在知道一个数的ACSII码的情况下,怎么显示这个字符 谢谢
那为什么 (char)0XEA和(char)0X83转化出来都是??呢
如果我这样呢(int)((char)0XEA)和(int)((char)0X83)输出来不应该是0xEA和0X83吗?

输出时使用(char)把ASCII码强制转换成字符型就行了,例如
cout<< (char)xx;
或者先定义一个字符变量,再把ASCII码赋值给它,然后输出
int a;
a = XX;
cout << a;

补充:
标准的ASCII最大值为127,也就是十六进制的7F,0XEA和0X83比0X7F大,所以无法显示;而(int)((char)0XEA),是把0XEA转换为char型,注意char型为1个字节的,用二进制表示也就是1110 1010,再把((char)0XEA)转换为int型,也就是(int)(1110 1010)了,注意int型一般为4个字节的,所以要扩充 1110 1010 成 1111 1111 1111 1111 1111 1111 1110 1010,假如现在输出结果就为-22,为什么呢?补码原理。

例子: 'a'的ascii是97

#include <iostream>
using namespace std;

void main()
{
int a = 97;
cout <<(char)a<<endl;
}

char a=65;
printf("%c",a);

char x;
x=(char)已知的ACSII码值;
输出 x就可以了

昨天您提问开始,我就也在找你提问的这个答案。如果你找到答案,烦请告知一下。

不过关于这个问题,我觉得有一个重点就是,int型与数据进制。实际上,char,bool都是整型数据的一种。而整型数据可以用二进制,十进制,十六进制来表示。