【数据转换】进制转换汇总
一、浮点数与二进制转换
(1)十进制浮点数到二进制浮点数的转换
1、十进制到二进制: 整数部分用2来除,小数部分用2来乘
2、规格化二进制数: 改变小数点,使小数点前只有第一位有效数字
3、计算指数的移码:原来的指数加上2^{e-1}-1
4、把符号位,指数的移码,尾数合在一起 (尾数不够补0)
例:100.25
100 => 110 0100
0.25 => 0.25*2=0.5 >> 0
0.5*2=1.0 >> 1 // 得到1.0, 停止
故100.25 => 110 0100.01
规格化二进制数=>1100100.01 =1.10010001*2^6
指数的移码 = 6+127=133 => 1000 0101
拼接:
0 10000101 10010001000000000000000
符号 指数 尾数
(1)二进制浮点数到十进制浮点数的转换
1、分割符号位, 指数移码, 尾数
2、将移码减去偏移2^{e-1}-1, 得到真正的指数
3、写成规格化的二进制浮点数
4、写成非规格化的二进制浮点数形式
5、把二进制数转换成十进制数
例:1 10001000 10011111110000000000000
指数=> 136-127=9
10011111110000000000000 => 1001111111
拼接=>(-1)*2^9*1.1001111111 =>(-1)*1100111111.1 =>-831+1*2^(-1)=-831.5
/*******相与枕藉乎舟中,不知东方之既白*******/