北京网站建设推广服务信息,商城app定制开发,建设工程信息网论坛,网站建设便宜的公司1、十进制小数 转 二进制小数
公式
小数 * 2得到n1, 将n1的整数作为二进制数第一位#xff1b;n1的小数 * 2得到n2, 将n2的整数作为二进制数第二位#xff1b;n2的小数 * 2得到n3, 将n3的整数作为二进制数第三位#xff1b;… 重复以上步骤#xff0c;直到小数部分为0或者…1、十进制小数 转 二进制小数
公式
小数 * 2得到n1, 将n1的整数作为二进制数第一位n1的小数 * 2得到n2, 将n2的整数作为二进制数第二位n2的小数 * 2得到n3, 将n3的整数作为二进制数第三位… 重复以上步骤直到小数部分为0或者达到指定的精度即可。
例子一: 十进制0.1转二进制 0.1 * 2 0.2 →取整数部分0 0.2 * 2 0.4 →取整数部分0 0.4 * 2 0.8 →取整数部分0 0.8 * 2 1.6 →取整数部分1 0.6 * 2 1.2 →取整数部分1 0.2 * 2 0.4 →取整数部分0 0.4 * 2 0.8 →取整数部分0 0.8 * 2 1.6 →取整数部分1 0.6 * 2 1.2 →取整数部分1 … 可以看到0.1转2进制不管怎么乘2结果小数位不可能为0是一个无限循环小数只能截取一部分。 我们再将获得的整数部分组合起来 二进制为0.00011001100110011001101截取23位
例子二: 十进制0.2转二进制 0.2 * 2 0.4 →取整数部分0 0.4 * 2 0.8 →取整数部分0 0.8 * 2 1.6 →取整数部分1 0.6 * 2 1.2 →取整数部分1 0.2 * 2 0.4 →取整数部分0 0.4 * 2 0.8 →取整数部分0 0.8 * 2 1.6 →取整数部分1 0.6 * 2 1.2 →取整数部分1 … 0.2转2进制同样是一个无限循环小数只能截取一部分。 二进制为0.00110011001100110011011截取23位
例子三: 十进制0.3转二进制 0.3 * 2 0.6 →取整数部分0 0.6 * 2 1.2 →取整数部分1 0.2 * 2 0.4 →取整数部分0 0.4 * 2 0.8 →取整数部分0 0.8 * 2 1.6 →取整数部分1 0.6 * 2 1.2 →取整数部分1 … 0.3转2进制同样是一个无限循环小数只能截取一部分。 二进制为0.01001100110011001100110截取23位
例子三: 十进制0.5转二进制 0.5 * 2 1.0 →取整数部分1 … 二进制为0.1 我们可以看出0.1和0.2转二进制的时候就已经失去精度了。
截取无限循环数时向上取舍。 截取n位时判断(n1)位是否为1为1则n位1为0直接舍去。 0.1100截取为3位第4位为0直接舍去。 0.1001截取为3位第4位为1第3位1 ---- 0.101 2、二进制小数 转 十进制小数
小数点后开始依次乘以2的负一次方2的负二次方2的负三次方…
公式 小数第 1 位 ∗ 2 − 1 小数第1位 * 2^{-1} 小数第1位∗2−1 小数第 2 位 ∗ 2 − 2 小数第2位 * 2^{-2} 小数第2位∗2−2 小数第 3 位 ∗ 2 − 3 小数第3位 * 2^{-3} 小数第3位∗2−3 小数第 4 位 ∗ 2 − 4 小数第4位 * 2^{-4} 小数第4位∗2−4 …最后将所有计算结果求和就能得到十进制小数了。
例子一 二进制0.1转十进制 0.1 ∗ 2 − 1 0.1*2^{-1} 0.1∗2−1 0.5 例子二 二进制0.01001100110011001100110转十进制 0 ∗ 2 1 1 ∗ 2 − 2 0 ∗ 2 − 3 0 ∗ 2 − 4 1 ∗ 2 − 5 1 ∗ 2 − 6 0 ∗ 2 − 7 0 ∗ 2 − 8 1 ∗ 2 − 9 1 ∗ 2 − 10 0 ∗ 2 − 11 0 ∗ 2 − 12 1 ∗ 2 − 13 1 ∗ 2 − 14 0 ∗ 2 − 15 0 ∗ 2 − 16 1 ∗ 2 − 17 1 ∗ 2 − 18 0 ∗ 2 − 19 0 ∗ 2 − 20 1 ∗ 2 − 21 1 ∗ 2 − 22 0 ∗ 2 − 23 0*2^{1} 1*2^{-2} 0*2^{-3} 0*2^{-4} 1*2^{-5} 1*2^{-6} 0*2^{-7} 0*2^{-8} 1*2^{-9} 1*2^{-10} 0*2^{-11} 0*2^{-12} 1*2^{-13} 1*2^{-14} 0*2^{-15} 0*2^{-16} 1*2^{-17} 1*2^{-18} 0*2^{-19} 0*2^{-20} 1*2^{-21} 1*2^{-22} 0*2^{-23} 0∗211∗2−20∗2−30∗2−41∗2−51∗2−60∗2−70∗2−81∗2−91∗2−100∗2−110∗2−121∗2−131∗2−140∗2−150∗2−161∗2−171∗2−180∗2−190∗2−201∗2−211∗2−220∗2−23 0 0.25 0 0 0.03125 0.015625 0 0 0.001953125 0.0009765625 0 0 0.0001220703125 0.00006103515625 0 0 0.00000762939453125 0.000003814697265625 0 0 0.000000476837158203 0.000000238418579101 0 0 0.25 0 0 0.03125 0.015625 00 0.001953125 0.0009765625 0 0 0.0001220703125 0.000061035156250 0 0.00000762939453125 0.000003814697265625 0 0 0.000000476837158203 0.000000238418579101 0 00.25000.031250.015625000.0019531250.0009765625000.00012207031250.00006103515625000.000007629394531250.000003814697265625000.0000004768371582030.0000002384185791010 0.299999952316284179