多字节字符表示ASCII和十六进制

时间:2012-10-18 15:29:40

标签: c ascii asciiencoding

我无法理解如何在ascii表中表示多字节字符:十进制格式,然后是十六进制格式。

例如:

char *c = "é";
printf("%d\n%d", c[0], c[1]);

将显示:

-61

-87

在ascii表中,十进制中的“é”为130,十六进制为82。 我知道82是十六进制值130,但我们如何从-61&得到130 -87?

提前致谢并抱歉我的拼写

1 个答案:

答案 0 :(得分:3)

根据UTF-8字符集(其中包括许多GNU / Linux发行版),'é'字符常量的值为0xC3A9,相当于11000011 10010101 in二进制文件。在这里我们可以理解结果,假设有两个补码表示。

  • 序列11000011等于十进制-61
  • 序列10010101等于十进制-87