我无法理解多字节字符在 ascii 表中的表示方式:十进制格式,然后是十六进制。
例如:
char *c = "é";
printf("%d\n%d", c[0], c[1]);
它将显示:
-61
-87
在ascii表中,“é”十进制为130,十六进制为82。 我知道82是130的十六进制值,但是我们如何从-61和-87获得130?
提前致谢,并对我的拼写感到抱歉
最佳答案
根据 UTF-8 字符集(许多 GNU/Linux 发行版均使用该字符集),'é'
字符常量的值为 0xC3A9
,即相当于二进制的 11000011 10010101
。在这里我们可以理解结果,假设两个补码表示。
- 序列
11000011
等于十进制的-61
。 - 序列
10010101
等于十进制的-87
。
关于c - 多字节字符表示 ASCII&Hex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958233/