【问题标题】:Multibyte Integers Variables in C [duplicate]C中的多字节整数变量
【发布时间】:2012-11-03 07:08:56
【问题描述】:

我想知道,如何计算单引号' '中字符串的整数值。

我的示例代码是:

#include <stdio.h>

int main()
{
    int c = 'aA';
    int d = 'Aa';

    printf( "%d %d" , c, d);

    return 0;
}

输出是:

24897 16737

这些数字是多少?有没有计算公式?

【问题讨论】:

  • 错了,你必须在字符串上使用双引号。
  • @Nick 真的吗?不,一点也不。
  • @H2CO3 是被视为字符串的多字节整数吗?
  • @Nick 不,他们不是。 但是: OP 所拥有的是有效的,它只是意味着不同的东西。
  • 有一次,它作为 What do single quotes do in C++ when used on multiple characters? 的副本被关闭了 鉴于替代方案是 C++ 问题,而这是 C,因此有人反对并删除了重复信息并不完全令人惊讶 - 但是它被标记为重复的事实仍然被记录下来。不知道该怎么做最好,但至少你不必去寻找编辑历史来找到所谓的重复。

标签: c ascii


【解决方案1】:

这些是:

  1. 不是字符串!

  2. 多字节整数,其值由实现定义,但通常使用以下公式计算:

    integer value of 1st character multiplied by (2 &lt;&lt; CHAR_BITS) + integer value of 2nd character

因此,假设您的 C 语言环境使用 ASCII 并且您有 8 位字节,'aA' 变为

97 * 256 + 65

这是 24897。

多字符文字的类型为int

【讨论】:

    【解决方案2】:

    多字符常量的值是实现定义的。

    § 6.4.4.4 字符常量
    包含多个字符的整数字符常量的值(例如, 'ab'),或包含不映射到单字节的字符或转义序列 执行字符,是实现定义的。

    【讨论】:

      【解决方案3】:

      它是存储在变量中的多字符字符的值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-17
        • 2011-03-04
        • 2021-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多