gpt4 book ai didi

c++ - C++ 中 ü 的 ASCii 值

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:23 25 4
gpt4 key购买 nike

根据 that ü 的站点 ASCii 值是 129,但是当我运行 printf("%d",'ü') 代码时,输​​出是 -4。这是什么原因?

最佳答案

您得到 -4 基本上纯属偶然,因为它取决于您环境的语言环境设置和编译器的实现。

其他人已经指出,根据您的平台是否认为 char 有符号,打印一个 char 值就好像它是一个整数可能会为 0x80 的值产生负数 及更高。


至于编码(请注意,下面的列表并不详尽):

ü 没有 ASCII 值,因为 (US-) ASCII只定义最多 0x7f (127) 个字符。

IBM Codepage 437850 (DOS) 在 0x81 处有 ü,根据符号为 -127 或 129。

ISO-8859-1 through -4, -9, -10, and -13 through -16以及 Windows 代码页 12501252 ü0xfc (-4/252)。其他 ISO-8859 编码的字符集中没有 ü

UTF-8 - 每个人都应该使用它来代替过去的 variety 的那些 8 位编码的 reasons - 将 ü 编码为双字节序列 0xc3 0xbc

我整理了一个供个人使用的并排代码页,如果您有兴趣,可以在 my homepage 找到它。 .


一旦你理解了这一点,请注意该标准定义了两个 character sets ,一种用于表示源代码,一种用于表示可执行代码中的字符串。两者都不包含超出基本 A-Z 范围的任何字符,两者实际上可能不同(想想交叉编译器),并且都没有定义其数字表示 - 即您实际上可能正在查看 EBCDIC ,其中字符甚至没有使用连续值进行编码(即,assert( 'Z' - 'A' == 26 ) 会失败)。

你觉得这很有趣吗?好吧,基本上您的机器甚至不必提供像 @ 这样的字符,因为它是 ASCII,但不是基本字符集的一部分。 ;-)

一般来说,一旦您在源代码中使用了非 ASCII 字符,您就会留下明确定义的行为并依赖于实现/环境。

关于c++ - C++ 中 ü 的 ASCii 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com