1. C++ 十进制,八进制,十六进制表示法
1) 如果第一位为1-9,则为十进制
2) 如果第一位为0,第二位为1-7则为八进制
3) 如果前两位为0x或者0X,则为十六进制
cout 控制符 dec oct hex 分别表示输出为十进制,八进制和十六进制
int nTest = 42;
cout << dec << "nTest(dec)=" << nTest << endl;
cout << oct << "nTest(oct)=" << nTest << endl;
cout << hex << "nTest(hex)=" << nTest << endl;
cout 打印浮点数后面的0
cout.seft(ios_base::fixed, ios_base::floatfield);
cout << "9/5" << 9.0/5.0 << endl;
9/5 执行int除法
9L/5L 执行long除法
9.0/5.0 执行double除法
9.0f/5.0f执行float除法
int glass{1999}; //{}初始化,C++11
2. C++常量
数字存储
cout << "year=" << 1942 << endl; ----> year=1942
数字常量后缀(大小写都可以)
long(l/L)、unsigned long(ul/UL) ...
数字常量的存储规则是能够存储该数据的最小类型
字符存储(字母,数字,标点符号)
通过字母的数值编码来解决存储问题 , 一般的字符集有ASCII、EBCDIC、Unicode
3. 类型转换
- 将一种算算数类型转换为另一种算数类型的变量时,C++将对值进行转换
- 表达式中包含不同的类型时,C++将对值进行转换
- 将参数传递给函数时,C++将对值进行转换
1) 较大的浮点类型转换为较小的浮点类型,如将double类型转换为float类型
2)浮点类型转换为整型
3)较大的整型转换为较小的整型,如long转换为short
- 表达式中的转换
在计算表达式时,C++将bool、char、unsigned char、signed char和short值转换为int,其中true被转为1,false被转为0,被称为整型提升(integeral promotion)
转换规则(将较小类型的值转换为较大类型的值)
- 如果有一个操作数的类型时long double,则将另一个操作数的类型转换为long double
- 否则,如果有一个操作数的类型时double,则将另一个操作数的类型转换为double
- 否则,如果有一个操作数的类型时float,则将另一个操作数的类型转换为float
- 否则,操作数都是整型,执行整型操作,执行整型提升
强制类型转换不会改变变量的值,而是创建一个新的、指定类型的值,可以在表达式中使用这个值