C++ Primer第二章 变量和基本类型
标签(空格分隔): 未分类
2.1 基本内置类型
基本数据类型:算术类型+空类型(void)
- 算术类型:整型(字符和布尔类型) + 浮点型。
- long long 是C++11中新定义的。
- 为了赋予内存中某个地址明确的含义,必须首先知道在该地址的数据的类型。 类型决定了比特数和如何解释这些比特的内容。
习题2.1
C ++保证short和int至少为16位,长至少32位,long long至少为64位。
有符号可以表示正数,负数和零,而无符号只能表示不小于零的数字。使用int进行整数运算。 short通常太小,实际上,long通常与int相同。如果您的数据值大于int的最小保证大小,则使用long long。总之:short < int < long < long long
如果您知道值不能为负数,请使用unsigned类型。使用double进行浮点计算;float通常没有足够的精度,双精度计算与单精度的成本可以忽略不计。事实上,在某些机器上,双精度操作比单一操作更快。长双精度提供的精度通常是不必要的,并且通常需要相当大的运行时间成本。 (总之:float < double < long double)
2.1.2类型转换
- 当给一个无符号类型超出其表示范围的值时,取模后的余数。
unsigned char = -1;//-1是补码,8位:1000 0001---反码:0111 1110 + 1=补码 0111 1111 == 255.
- 给一个类型超过其表示范围时,是未定义的。
signed char c2 = 256;//c2是未定义的。[-128,127]
无符号类型参与表达式运算
1. unsigned + int
将int变为unsigned再运算。
unsigned u = 10; int i = -42;//int占32位,4字节。
cout << u + i << endl;//
unsigned - unsigned
无符号数相减