设为首页 加入收藏

TOP

2.1.1 算术类型(1)
2013-10-07 16:25:31 来源: 作者: 【 】 浏览:143
Tags:2.1.1 算术 类型

2.1.1  算术类型(1)

算术类型分为两类:整型(integral type,包括字符和布尔类型在内)和浮点型。

算术类型的尺寸(也就是该类型数据所占的比特数)在不同机器上有所差别。表2.1列出了C++(www.cppentry.com)标准规定的尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸。某一类型所占的比特数不同,它所能表示的数据范围也不一样。

表2.1:C++(www.cppentry.com):算术类型

2.1C++(www.cppentry.com):算术类型

类型

含义

最小尺寸

bool

布尔类型

未定义

char

字符

8

wchar_t

宽字符

16

char16_t

Unicode字符

16

char32_t

Unicode字符

32

short

短整型

16

int

整型

16

long

长整型

32

long long

长整型

64

float

单精度浮点数

6位有效数字

double

双精度浮点数

10位有效数字

long double

扩展精度浮点数

10位有效数字

布尔类型(bool)的取值是真(true)或者假(false)。

C++(www.cppentry.com)提供了几种字符类型,其中多数支持国际化。基本的字符类型是char,一个char的空间应确保可以存放机器基本字符集中任意字符对应的数字值。也就是说,一个char的大小和一个机器字节一样。

其他字符类型用于扩展字符集,如wchar_t、char16_t、char32_t。wchar_t类型用于确保可以存放机器最大扩展字符集中的任意一个字符,类型char16_t和char32_t则为Unicode字符集服务(Unicode是用于表示所有自然语言中字符的标准)。

除字符和布尔类型之外,其他整型用于表示(可能)不同尺寸的整数。C++(www.cppentry.com)语言规定一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大。其中,数据类型long long是在C++(www.cppentry.com)11中新定义的。

内置类型的机器实现

计算机以比特序列存储数据,每个比特非0即1,例如:

  1. 00011011011100010110010000111011 ... 

大多数计算机以2的整数次幂个比特作为块来处理内存,可寻址的最小内存块称为"字节(byte)",存储的基本单元称为"字(word)",它通常由几个字节组成。在C++(www.cppentry.com)语言中,一个字节要至少能容纳机器基本字符集中的字符。大多数机器的字节由8比特构成,字则由32或64比特构成,也就是4或8字节。

大多数计算机将内存中的每个字节与一个数字(被称为"地址(address)")关联起来,在一个字节为8比特、字为32比特的机器上,我们可能看到一个字的内存区域如下所示:

736424

0   0   1   1   1   0   1   1

736425

0   0   0   1   1   0   1   1

736426

0   1   1   1   0   0   0   1

736427

0   1   1   0   0   1   0   0

其中,左侧是字节的地址,右侧是字节中8比特的具体内容。

我们能够使用某个地址来表示从这个地址开始的大小不同的比特串,例如,我们可能会说地址736424的那个字或者地址736427的那个字节。为了赋予内存中某个地址明确的含义,必须首先知道存储在该地址的数据的类型。类型决定了数据所占的比特数以及该如何解释这些比特的内容。

如果位置736424处的对象类型是float,并且该机器中float以32比特存储,那么我们就能知道这个对象的内容占满了整个字。这个float数的实际值依赖于该机器是如何存储浮点数的。或者如果位置736424处的对象类型是unsigned char,并且该机器使用ISO-Latin-1字符集,则该位置处的字节表示一个分号。

浮点型可表示单精度、双精度和扩展精度值。C++(www.cppentry.com)标准指定了一个浮点数有效位数的最小值,然而大多数编译器都实现了更高的精度。通常,float以1个字(32比特)来表示,double以2个字(64比特)来表示,long double以3或4个字(96或128比特)来表示。一般来说,类型float和double分别有7和16个有效位;类型long double则常常被用于有特殊浮点需求的硬件,它的具体实现不同,精度也各不相同。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.5.2 初识成员函数 下一篇2.1.1 算术类型(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)