C++算术类型理解

357 阅读3分钟

启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

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

算术类型的的尺寸(该类型数据占的比特数)在不同机器上有所差别,这里列出一下C++标准规定的尺寸的最小值,这里需要注意的是这些类型同时运行编译器赋予更大的尺寸,但是类型占的比特数不同,它能表示的范围也是不一样的。

类型含义尺寸
bool布尔值类型未定义,true,false
char字符8位
wchart_t宽字符16位
char16_tunicode字符16位
char32_tunicode字符32位
short短整型16位
int整型16位
long长整型32位
long_long长整型64位
float单精度浮点数6位有效数字
double双精度浮点数10位有效数字
long_duble扩展精度浮点数10位有效数字

来仔细分开说一下上面的数据类型:

布尔类型

布尔类型取值是真(true)假(false)

字符类型

C++提供了几种字符类型,其中多数支持国际化,基本的字符串类型只有char类型,一个char的空间应该确保可以存放机器最大扩展字符集中的任意一个字符,也就是一个char的大小和一个机器字节一样。

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

整型

在c++当中整数也是需要不同尺寸来表达的,但是c++规定,一个int至少要和一个sort一样大,一个long至少要和一个int一样大,一个long long至少要和一个long一样大,

浮点型

在聊浮点型之前需要补充几个个概念:

字节与字

由于计算机用二进制进行计算,所以大多数计算机以2的整数次幂个比特(比特的概念之前在基础概念是聊过的)作为块来处理内存,而计算机可以寻址的最小单位叫做字节(一个字节是8比特),那么比字节大的储存单元就是字,所谓的字是有字节组成的,但不是固定的,有可能字的大小是32比特,有可能字的大小是64比特,这个和不同的机器配置相关,然后这样看来,一个字可能是4字节,也可能是8字节。

而float以1个字来表示,double用2个字表示,long double使用3到4个字表示。

有符号类型和无符号类型

除去上面的类型之外,c++还划分为有符号类型(signed)和无符号类型(unsigned),带符号类型可以标识正数,0,负数,无符号类型只能表示大于0的值。

类型 int,short,long,long long,float,double,long double,这些类型前面添加unsigned就可以得到无符号类型。

查阅了很多资料,c++需要很多计算机基础进行开端,太难了,还请大佬们多多指点。