小数转2进制

发布网友

我来回答

2个回答

热心网友

小数部分的二进制是按照乘2取整的方法的
0.67 * 2 = 1.34 //整数部分为1,因此是1,去掉整数部分是0.34
0.34 * 2 = 0.68 //整数部分为0,因此是0
0.68 * 2 = 1.36 //整数部分为1,因此是1,去掉整数部分是0.36
0.36 * 2 = 0.72 //整数部分为0,因此是0
0.72 * 2 = 1.44 //整数部分为1,因此是1,去掉整数部分是0.44
0.44 * 2 = 0.88 //整数部分为0,因此是0
0.88 * 2 = 1.76 //整数部分为1,因此是1,去掉整数部分是0.76
因此0.67表示为2进制为:0.1010101(精确度为7位)

热心网友

浮点数在存储时都是以A*B^N A乘以B的N次方
这样要用4字节来存储A B N 的值
不同的单片机同样的小数 A B N的值是不同的追问假设尾数是23位 是不是小数也要保留23位就可以了? 也就是A保留23位

追答先把小数转为二进制如 1234.67 = 1001 1010 010. xxxxxxxx
然后移位 0.1001 1010 010xxxxxx * 2^11
这样N就是11 A 是0 B如果是精度就要把小数点后面的截断
如果移位成 1001 .1010 010xxxx * 2^7
这样N就是7 A 是1001 B如果是精度就要把小数点后面的截断

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com