按照这个规定,单精度浮点数(float)这个数据类型所占内存大小为4个字节,也就是32位,所以单精度浮点数也叫32位浮点数,它在内存或硬盘中要占用32个比特。
单精度浮点数的尾数部分用23位存储,加上默认的小数点前的1位1,2(23+1) = 16777216。
因为 107 < 16777216 < 108,所以说单精度浮点数的有效位数是7位
double
在32位系统上通常是8个字节(64位)
- 1位符号位
- 11位指数位
- 52位尾数位(有效位数)
默认情况下使用的格式选项,根据数值的大小自动选择科学计数法或固定小数点表示法。
总结来说,较大的数据类型向较小的数据类型转换可能会导致精度丢失或数据溢出,因为较小的数据类型无法完全表示较大数据类型的所有值。
而较小的数据类型向较大的数据类型转换通常是安全的,因为较大的数据类型可以容纳较小数据类型的所有可能值,不会丢失精度或发生数据溢出。
友元类
可以同时访问多个不同类的私有和受保护成员
1、各种目标类给予了友元绝对信任,会导致目标类们之间的关系错综复杂,难以理解和维护;
2、突破了类原本的封装性,封装的目的是安全,使用友元又使类成员的安全性无法保障;
3、友元关系不具备传递性、继承性和交换性:比如A类是B类的友元,B类不一定是A类的友元,若C类继承自A类,C类却不一定是B类的友元,并不具备良好性质