你能将ASCII号转换为C中的字符吗?

时间:2018-03-31 15:54:44

标签: c performance types ascii

我已阅读以下问题条目:Convert ASCII number to ASCII Character in C

其中的所有答案都需要保存数据(char ...)。所以我的问题是你是否可以将ASCII号码转换为ASCII字符而不保存运行代码的设备上的任何数据?

澄清:我正在谈论的转换是机器语法,"a"等于97(十进制),如果我有数字{ {1}},我怎样才能将其翻译成人类'语法(进入97)。

2 个答案:

答案 0 :(得分:2)

C字符数字,这是他们解释的问题

任何小数字都可以解释为字符,ASCII或系统中的字符编码标准。相反,char可以解释为一个小数字而不存储它。

以下是一个例子:

int num;
scanf("%d", &num);
printf("Number %d corresponds to character '%c'\n", num, num);

程序读取一个数字,并将其传递给printf以解释两次 - 第一次作为整数,第二次作为一个字符。

Demo.

答案 1 :(得分:2)

正如dasblinkenlight所说,字符只是数字,字节,可以包含8位存储中的任何值。 该值可以解释为ASCII字符,无符号或无符号值。

例如,值0x31可以解释为可打印字符'1'或小数值4997可以是数字或字符a

char str[2];

str[0] = 97;
str[1] = '\0';

printf("0x31 = %d and %c\n",0x31,0x31);
printf("97 = %s %d %c \n",str, str[0], str[0] );

打印:

0x31 = 49 and 1                                                                                                                           
97 = a 97 a