第三章 处理数据
一、整型(11种)
1、数字整型(内存和宽度从小到大):
(黑为有符号类型,红为无符号类型)
- short(>=16位):
- unsigned short
- int(宽度至少与short一样)
- unsigned int (缩写:unsigned)
- long(>=32位,宽度至少与int一样长)
- unsigned long
- long long(>=64位,宽度至少与long一样长)
- unsigned long long
(1)有符号与无符号超出整型的限制(宽度)的情况:
以short与unsigned short为例:
(2)进制:
- 八进制:第一位为0,第二位为1~7
- 十六进制:前两位为0x或0X
例一(八进制与十六进制的输出):
例二(hex与oct的作用):
(3)确定常量的类型的方式:
- short(>=16位):无
- unsigned short:无
- int(宽度至少与short一样):无
- unsigned int (缩写:unsigned):u或U(2022u)
- long(>=32位,宽度至少与int一样长):L (2022L)
- unsigned long :ul(可以采用任何一种顺序,大小写均可,2022UL)
- long long(>=64位,宽度至少与long一样长):ll或LL(2022LL)
- unsigned long long : ull、Ull、uLL和ULL (2022ULL)
2、char类型:字符和小整数
(1)书写格式:
- 正确格式:
char ch = 'M';
- 错误格式:
char ch = ”M“;
- 奇葩写法(写ASCII码)
char ch = 109;
输出为:m(109为m的ASCII码)
- 注意方式:
char ch = '1';(只有个位,意思是1的字符,其ASCII码等于49)
输出为: 1
(2)有无符号的char:
- signed char (特定有符号:-128~127)
- unsigned char(特定无符号:0~255)
(3)wcha_t(可短可长):
书写格式:
(4) char16_t 与 char32_t:
书写格式:
3、bool类型:
布尔值:true(真)与false(假)
二、const限定符:
作用:编译器将不允许修改该加入了限定符的常量的值。
书写格式:
三、浮点数:
1、E/e表示法:
d.dddE+n(d.dddE)指的是将小数点向右移n位;d.dddE-n指的是将小数点向左移n位。
2、浮点类型:
- float:至少32位(通常32位)
- double:至少48位,不少于float(通常64位)
- long double:至少和double一样多(通常80、96或128位)
3、setf():
- 定义(作用):这种调用迫使输出使用定点表示法,以便更好地了解精度(提升精度),它防止程序把较大的值切换为 E 表示法,并使程序显示到小数点后6位。
- 使用方式:(在输出前)
- 例子:
有setf():
输出结果:
无setf():
输出结果:
4、浮点常量:
- float:f或F作为后缀(1,234f)
- double:无
- long double:l或L作为后缀,一般用L(1.22L)
5、优缺点(相对于整型):
优:
- 可以表示整数之间的值;
- 表示的范围大得多;(有缩放因子)
缺:
- 运算慢;
- 精度降低;
四、算数运算符:
1、类型转换:
float到int:1.62 → 1;
2、以{}方式初始化时进行的转换:
- 大括号的初始化称为列表初始化;会保证数值的精度,不允许缩窄,例如float转int是禁止的,只能int转float。
- 使用方式:
3、强制类型转换:
- 方法一:
- 方法二(static_cast<>):
- 例题:
五、auto
定义:在初始化声明中,如果使用关键字auto,而不指定变量的类型,编译器将把变量的类型设置成与初始值相同。
书写格式:
扩展:
1、运算符 sizeof:内存
2、climits文件(头文件:#include <climits>):宽度
例子(1,2):
3、#define(在这里和#include是一样的,都是预处理器):
作用:#define INT_MAX 32767
在程序中查找INT_MAX,并将所有的INT_MAX都替换为 32767;
4、cout.put():
现版本:cout.put(***)与cout<<*** 作用一样
5、转义序列: