其他进制转二进制
十进制->二进制 eg:十进制数10转换二进制 10/2=5········0 5/2 = 2······1 2/2 = 1·····0 1/2 = 0······1 所以10的二进制为1010 float->二进制 8.25 整数部分与上面一样 8/2=4···0 4/2 = 2···0 2/2 = 1···0 1/2 = 0···1 8->1000(b) 0.25->二进制 0.25*2 = 0.5 <1 0 0.5*2 = 1.0 = 1 1 所以8.25 = 1000.01 = 1.00001*2^3
概述
符号域:S 占一位 正数为0 负数为1 接吗域:E 占8位 或者11位 E=e 127或者E=e 1023 尾数域名:M 23位或者52位 小数位部分 float的存储结构 由于计算机中只能存储二进制数据,所以十进制数据必须转成二进制数
例如:-8.25=-1000.01=-1.00001*2^3
小数转换二级制
-8.25转化为二进制,转化如下:以2为基数
整数部分
8/2=4............0
4/2=2............0
2/2=1............0
1/2=0............1
所以整数部分是1000
小数部分 取整数部分
0.25*2=0.5........0
0.50*2=1.0........1
所以小数部分是01
所以8.25转为二进制为1000.01
float内存存储
8.25 = 1000.01 = 1.00001*2^3 首先化为规范化的指数形式 符号域 阶码域 尾数域 0 3 127 00001000000000000000000 所以符号域 = 0 阶码域 3 127 = 130 ->10000010(b) 尾数域:00001000000000000000000 2023-04-04T01:28:39.png 0100 0001 0000 0100 0000 0000 0000 0000 4 1 0 4 0 0 0 0 所以浮点数8.25在内存中存储的数据是0x41040000 double的存储结构 双精度类似单精度 不写了。