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 << CHAR_BITS) + integer value of 2nd character
因此,假设您的 C 语言环境使用 ASCII 并且您有 8 位字节,'aA'
变为
97 * 256 + 65
这是 24897。
多字符文字的类型为int
。
【讨论】:
【参考方案2】:多字符常量的值是实现定义的。
§ 6.4.4.4 字符常量 包含多个字符的整数字符常量的值(例如,
'ab'
),或包含不映射到单字节的字符或转义序列 执行字符,是实现定义的。
【讨论】:
【参考方案3】:它是存储在变量中的多字符字符的值
【讨论】:
以上是关于C中的多字节整数变量的主要内容,如果未能解决你的问题,请参考以下文章