0

我有一个整数 i ([0,255]) 的列表,我想将这些整数转换为字符。

int i;
char c = (char)i;

当我打印 c(当 i=0 时)时,我没有得到相应的 ascii 符号。如何正确进行映射?

4

3 回答 3

4

ASCII 0 没有符号。所有小于 32 的 ASCII 值都是控制字符。

于 2012-04-23T16:12:51.317 回答
1

您正在将 ASCII 值与 int 值混合...查看 ASCII 表,您就会明白。要打印“0”,您需要打印值 48(十进制)。要打印从 0 到 9 的值,您只需将 48 添加到 int 值,您将获得正确的 ASCII 码。要打印长于一位的值,您需要某种从一个 int 到多个 ASCII 代码的转换。谷歌搜索应该找到这样的功能。

于 2012-04-23T16:22:59.890 回答
0

我不相信值 0 有一个有意义的 ASCII 符号。它是一个 NULL 字符,不应该打印任何东西。例如,为什么不尝试在i = 97('a') 时打印一个值?

如果您检查ASCII 表,您会发现并非每个 ASCII 字符都有一个有意义的打印值。

于 2012-04-23T16:12:37.427 回答