之间的关系是什么词的长度、性格的尺寸,整数的大小和字节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 ++不具有数据类型称为wordbyte。其余都很好定义为范围。基座是具有char比特的CHAR_BITS。 CHAR_BITS的最常用的值是8

的sizeof(char)的== 1(一个字节)(在C ++中,在C - 未指定),点击 的sizeof(int)的> =的sizeof(char)的结果, 字 - 不是C ++型,usualy在计算机体系结构意味着2个字节

类取决于你的意思是什么关系。数字类型的大小一般是机器字大小的倍数。字节是一个字节是一个字节 - 8位,没有更多的,不会少。一个字符在标准作为一个单一的无符号字节相信(检查为细节ARM)定义

一般的规则是,不要使有关数据类型的实际大小的任何假设。该标准规定,如“长”整数类型之间的关系将是或者不是“INT”相同的尺寸或更大。语言的个别实现将挑选具体的尺寸,便捷地为他们的类型。例如,对于一个64位处理器的编译器会选择不同的尺寸比为32位处理器的编译器。

可以使用的sizeof()运算,以检查您所使用的编译器的特定尺寸(在特定的目标体系结构)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top