题
之间的关系是什么词的长度、性格的尺寸,整数的大小和字节C++?
解决方案
该标准规定,某些类型的具有最小尺寸(短为至少16位,int是至少16位等),以及该类型的一些组被排序(sizeof(int)
> = sizeof(short)
> = sizeof(char)
)。
其他提示
C++char必须足够大,以担任任何角色在implemetation的基本特征设置的。
int
有的"自然尺寸建议的架构的执行环境"。注意,这意味着,一个int不会 不 需要至少32-位大小。实现在那里 int
是16位是常见(认为嵌入式ot MS-DOS)。
以下是采取从各个部分C++98和C99标准:
long int
已经为至少一样大int
int
已经为至少一样大short
short
已经为至少一样大char
注意,他们都可能同样大小。
还(假定有两个补实施):
long int
必须至少有32位的int
必须至少有16位short
必须至少有16位char
必须至少有8位
在标准不知道由处理器啄使用这种“字”。但它说类型“INT”应该有一个执行环境的自然大小。但是,即使对于64位环境中,INT通常只有32位。因此,“字”在标准方面有相当多没有共同的意义(除了当然的常用英语“单词”)。
字符尺寸是字符的大小。取决于你谈论什么字符。字符类型字符,无符号字符和符号字符。也wchar_t的用于存储可以具有任何尺寸的字符(由实现确定 - 但必须使用整数类型作为其底层类型的一个很像枚举。),而字符/符号的字符或无符号的字符必须具有一个字节。这意味着,一个字节有多达位作为一个字符了。如果实现说char类型的对象有16位,然后一个字节有16位了。
现在一个字节是一个字符占用尺寸。这是一个单元,而不是一些特定的类型。没有非常多的事情,只是因为这是你可以访问存储设备。即你没有指针访问位字段,但您可以访问开始于一个字节为单位。
“整数大小”现在是相当宽。你什么意思?所有布尔,焦炭,短,整型,长而其unsinged同行都是整数。他们的范围是什么,我会叫“整数大小”,它是在C标准文件 - 由C ++标准接管。 CHAR的范围签署是从-127 < - > 127,对于短和int它是相同的,并且是-2 ^ 15 + 1 < - > 2 ^ 15-1和长期它是-2 ^ 31 + 1 < - > 2 ^ 31-1。及其无符号对应的范围从0到2 ^ 8-1,分别为2 ^ 16-1和2 ^ 32-1。然而,这些方式的最小尺寸。也就是说,一个int可能没有最大大小2在任何平台上^ 14,因为那是小于2 ^ 15-1当然。它遵循对于那些需要最小的比特的值。对于char即如图8所示,短/ INT是16和用于长是32.一种用于负数二进制补码表示不是必须的,这就是为什么负值不-128
代替-127
例如用于符号字符。
标准C ++不具有数据类型称为word
或byte
。其余都很好定义为范围。基座是具有char
比特的CHAR_BITS
。 CHAR_BITS的最常用的值是8
的sizeof(char)的== 1(一个字节)(在C ++中,在C - 未指定),点击 的sizeof(int)的> =的sizeof(char)的结果, 字 - 不是C ++型,usualy在计算机体系结构意味着2个字节
类取决于你的意思是什么关系。数字类型的大小一般是机器字大小的倍数。字节是一个字节是一个字节 - 8位,没有更多的,不会少。一个字符在标准作为一个单一的无符号字节相信(检查为细节ARM)定义
一般的规则是,不要使有关数据类型的实际大小的任何假设。该标准规定,如“长”整数类型之间的关系将是或者不是“INT”相同的尺寸或更大。语言的个别实现将挑选具体的尺寸,便捷地为他们的类型。例如,对于一个64位处理器的编译器会选择不同的尺寸比为32位处理器的编译器。
可以使用的sizeof()运算,以检查您所使用的编译器的特定尺寸(在特定的目标体系结构)。