c - 多字节字符表示 ASCII&Hex

标签 c ascii asciiencoding

我无法理解多字节字符在 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/

相关文章:

python - UnicodeEncodeError : 'ascii' codec can't encode character at special name

javascript - 带有 React 变量的 HTML 元素不显示 ASCII

html - 小于等于的ASCII码

jquery - @ 在 GET 中转换为 %40

c# - 十六进制值字符串到 varbinary SQL Server 2008

使用 Apple 的 GCD 创建 future

c - 查找 EOF 来追加字符数组

c - 在 c 中杀死 child 后,尝试将变量从 child 添加到父亲时,fork 给出了奇怪的输出

c - 属性错误: opencv python on raspberry pi

c++ - 为什么扩展的 ASCII(特殊)字符需要 2 个字节才能存储?