据我所知,在32位系统中,1个字符=1个字节=8位。
那么为什么
谢谢。
char c=0xffff0000; //wrong
那么为什么
char
只允许8位,并且文件中的每个字符也是8位长度呢?谢谢。
char有CHAR_BIT
位 [来自#include <climits>
]
在80x86机器上,我总是看到它是8位。
在TMS320C54x和TMS320C55x DSP上,我看到它是16位。这很麻烦,因为为了节省内存,字符串必须用每个char中保存两个ASCII字符的方式进行打包!
总是有 sizeof(char) == 1
一个字符始终是一个字节,大小始终为1。
一个字节至少有8位,但在某些系统上可以有更多。
32位系统指的是地址总线的大小,在C或C++中,您可以将其视为指针的大小,而不是字节的大小。
char
类型的位数通常为8(一个字节/八位)。确切的数字在头文件<climits>
中定义为CHAR_BIT
。
1字节 = 8位
char
大小,可以存储它们 :) - Fred Foo一个字节绝对不是32位。无论在哪个系统中,一个字节始终是8位。
“32位”系统意味着“字”的大小为32位。换句话说,数据以32位块的形式在系统中传输。
sizeof(char)
和字符的大小并不总是相同的。sizeof(wchar_t)
)。sizeof(wchar_t)
),这表明sizeof(wchar_t)
始终为2。实际上,常见的值为4,这是有道理的,因为有大约100,000个Unicode字符。" - MSalterswchar_t
。相反,多字节字符(MBC)是一个由多个 char
==byte 组成的序列。Shift-JIS 或 UTF-8 使用这样的字符。而且由于 wchar_t
与多字节字符无关,你不能推断出 sizeof(wchar_t)
总是 >1。 - MSalters
c++
,因此请参考此链接:您能否再次查看有关字节、字符和字符的规则?。 - Nan Xiao