最简单的二进制到十进制算法,十六进制数据报文转换 *** 。
本条的功能:
浮点数0.1 0.2不等于0.3的预知识点。
我们知道js使用IEEE 754双精度(64位)来存储$ number的数据,只有知道相应的存储原理才能解释0.1 0.2不等于0.3。
组成
描述
位数
位置
符号
符号,0表示正,1表示负。
1位
63
指数
阶部分
11位
52-62
分数
小数部分
52位
0-51
计算公式a:
看完公式,让 举个栗子:
var a=2
具体思路:把十进制转换成二进制,二进制用科学的计数 *** 表示。
根据公式,可以得出结果。
最终结果:
一、十进制转二进制
整数:
1.十进制数除以2得到商和余数。
2.继续使用商业除法除以2,直到商小于1。
3.从下往上写余数,得到转换后的二进制。
例如:9到二进制
浮点数:
将数字分成整数和小数部分。将整数除以2,并将小数部分乘以2。取出对应的整数部分,进行3点运算,直到数值的小数部分等于0或者整数部分自上而下乘以2就是转换后的小数部分二进制,例如9.3到二进制。
整数部分的二进制是:1001。
小数部分转换过程:
从上图可以看出,转换成二进制的十进制数是01 1011 1011.(无限循环的1011)。
最终转换为:1001.011001(这是为了保留6位小数)
二进制转十进制整数计算:
浮点数:
1.将数字分成整数和小数部分。
2.整数按整数计算。
3.小数按照下图计算。
比如二进制数:0.111。
二进制差分编码规则,ieee单精度浮点数转换为十进制真值