我有一个整数 i ([0,255]) 的列表,我想将这些整数转换为字符。
int i;
char c = (char)i;
当我打印 c(当 i=0 时)时,我没有得到相应的 ascii 符号。如何正确进行映射?
ASCII 0 没有符号。所有小于 32 的 ASCII 值都是控制字符。
您正在将 ASCII 值与 int 值混合...查看 ASCII 表,您就会明白。要打印“0”,您需要打印值 48(十进制)。要打印从 0 到 9 的值,您只需将 48 添加到 int 值,您将获得正确的 ASCII 码。要打印长于一位的值,您需要某种从一个 int 到多个 ASCII 代码的转换。谷歌搜索应该找到这样的功能。
我不相信值 0 有一个有意义的 ASCII 符号。它是一个 NULL 字符,不应该打印任何东西。例如,为什么不尝试在i = 97
('a') 时打印一个值?
如果您检查ASCII 表,您会发现并非每个 ASCII 字符都有一个有意义的打印值。