前言
C++定义了一套包括算术类型(arithmetic type)和空类型(void)在的内的基本数据类型。
一、算术类型是什么?
算术类型分类两类:整型和浮点型。具体类型如下:
//c++ 算术类型
类型 含义 最小尺寸
bool 字符 未定义 //布尔类型(bool)取值是真(true)或者假(false)
//数字表示则非零即真,即真是非0,假是0
char 字符 8位
wchar_t 宽字符 16位
char16_t Unicode字符 16位 //Unicode是用表示所有自然语言中字符的标准
char32_t Unicode字符 32位
short 短整型 16位
int 整型 16位
long 长整型 32位
long long 长整型 64位 //long long是C++11中新定义的
float 单精度浮点数 6位有效数字
double 双精度浮点数 10位有效数字
long double 扩展精度浮点数 10位有效数字
ps:浮点型可表示单精度、双精度和扩展精度值,一般来说,类型float和double分别有7和16个有效位
1.带符号类型和无符号类型
除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的(signed)和无符号的(unsigned)两种。带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。
类型int、short、long和long long都是带符号的,通过在这些类型名前添加unsigned就可以得到无符号类型,例如unsigned long。类型unsigned int可以缩写为unsigned。
那么问题来了一般如何选择类型:
一.当明确知晓数值不可能为负时,选用无符号类型。
二.使用int执行整数运算。在实际应用中,short显得太小而long一般和int有一样的尺寸。如果数值超过了int的表示范围,选用long long。
三.在算术表达式中不要使用char和bool,只有在存放字符或布尔值时才是用它们。因为char类型在一些机器上是有符号的,相反另一些机器上又是无符号的&#