【发布时间】:2013-05-02 13:39:33
【问题描述】:
引用自 C++03 2.2 字符集:
"基本执行字符集和基本执行 宽字符集应包含基本的所有成员 源字符集..执行成员的值 字符集是实现定义的,并且任何其他成员 是特定于语言环境的。”
据此,'A',属于执行字符集,其值是实现定义的。所以不是65(十进制'A'的ASCII码),什么?!
// Not always 65?
printf ("%d", 'A');
或者我对执行字符集中字符的值有误解?
【问题讨论】:
-
因此,如果您在使用 EBCDIC 的机器上运行,您期望 `char c = 'A'; cout
-
只是好奇,但是有没有人看到除了 EBCDIC 或 ASCII 的扩展之外的任何东西?在 C 或 C++ 中:我熟悉在 C 出现之前使用的其他编码,但我认为从来没有使用过它们的 C 编译器。 (大多数最早的编码没有区分大小写,所以它们可能是 6 位。)
-
'A'的值为'A'。 -
@KerrekSB:我所说的值是指“A”在只有“0”和“1”的机器上的二进制表示。它应该在上下文中澄清。
-
@Mats,哦,我只是不知道是否存在其他单独开发的 w/ASCII 编码。谢谢。
标签: c++