C中的多字节整数变量

Posted

技术标签:

【中文标题】C中的多字节整数变量【英文标题】:Multibyte Integers Variables in C [duplicate] 【发布时间】: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,因此有人反对并删除了重复信息并不完全令人惊讶 - 但是它被标记为重复的事实仍然被记录下来。不知道该怎么做最好,但至少你不必去寻找编辑历史来找到所谓的重复。 【参考方案1】:

这些是:

    不是字符串!

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

    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】:

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

【讨论】:

以上是关于C中的多字节整数变量的主要内容,如果未能解决你的问题,请参考以下文章

C中的无符号整数在java中的处理

如何在C ++中将字节数组中的整数转换为数字

将 Nibbles 推入 C 中的整数堆栈

java中的变量各占得字节数

C语言 如何计算结构体的大小

Java——变量的声明赋值以及使用