- 浮点数在内存中的存储方式
- float 占4字节,32位:符号位1 阶码8 尾数23
- double 占 8字节 64位:符号位1 阶码11 尾数52
- 十进制小数转换二进制小数
- float在内存中存储方式:符号位 正0,负1
- 将二进制小数转换为科学计数法,小数点左移动(阶码为负数),第30位为1,移动的位数减一转换二进制,放到29-23位。
- 将二进制小数转换为科学计数法,小数点不移动(阶码为0),第30位为0,0000000取反为1111111放到29-23位。
- 将二进制小数转换为科学计数法,小数点右移动(阶码为正数),第30位为0,移动的位数转换二进制,放到29-23位。
- 从二进制小数里选取23位,逐一放到尾数里。
- 1.0f的表示:00111111100000000000000000000000 0x3f800000
- 0.0f的表示:0x00000000
- (int&)a
- a为浮点数(float a),(int&)a表示:将a在内存中存储的值,转换为int类型,即十进制整型
- 若a = 1.0f (int&)a = 1065353216(0x3f800000的十进制)
- 若a = 0.0f (int&)a = (int)a = 1