我已阅读以下问题条目:Convert ASCII number to ASCII Character in C
其中的所有答案都需要保存数据(char
...)。所以我的问题是你是否可以将ASCII
号码转换为ASCII
字符而不保存运行代码的设备上的任何数据?
澄清:我正在谈论的转换是机器语法,"a"
等于97
(十进制),如果我有数字{ {1}},我怎样才能将其翻译成人类'语法(进入97
)。
答案 0 :(得分:2)
C字符是数字,这是他们解释的问题。
任何小数字都可以解释为字符,ASCII或系统中的字符编码标准。相反,char
可以解释为一个小数字而不存储它。
以下是一个例子:
int num;
scanf("%d", &num);
printf("Number %d corresponds to character '%c'\n", num, num);
程序读取一个数字,并将其传递给printf
以解释两次 - 第一次作为整数,第二次作为一个字符。
答案 1 :(得分:2)
正如dasblinkenlight所说,字符只是数字,字节,可以包含8位存储中的任何值。 该值可以解释为ASCII字符,无符号或无符号值。
例如,值0x31
可以解释为可打印字符'1'
或小数值49
。 97
可以是数字或字符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