十进制小数<==>二进制小数
2016-01-24 21:45
639 查看
十进制小数 ⇒ 二进制小数
乘2取整对十进制小数乘2得到的整数部分和小数部分,
整数部分即是相应的二进制数码,
再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。
如此不断重复,直到小数部分为0或达到精度要求为止.
第一次所得到为最高位,最后一次得到为最低位
如:
0.25的二进制
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
def dec2bin(x): x -= int(x) bins = [] while x: x *= 2 bins.append(1 if x>=1. else 0) x -= int(x) return bins print(dec2bin(.8125)) # [1, 1, 0, 1]
二进制小数 ⇒ 十进制小数
小数点后,从左向右,每位分别表示 2−1,2−2,2−3,⋯0.1101b=1⋅2−1+1⋅2−2+0⋅2−3+1⋅2−4=0.8125
def bin2dec(b): d = 0 for i, x in enumerate(b): d += 2**(-i-1)*x return d print(dec2bin(0.8125)) # [1, 1, 0, 1] print(bin2dec(dec2bin(0.8125))) # 0.8125
References
[1] 十进制小数转二进制小数方法相关文章推荐
- 局部加权线性回归及岭回归之Python实现
- 第15章 位操作 15.1 二进制数、位和字节
- 机器学习之CART算法python实现
- 机器学习之线性回归python实现
- 机器学习算法之AdaBoost算法python实现
- 机器学习之KNN算法python实现
- 机器学习之感知机python实现
- 机器学习之支持向量机python实现
- 机器学习之逻辑回归python实现
- 神经网络与深度学习 1.6 使用Python实现基于梯度下降算法的神经网络和MNIST数据集的手写数字分类程序
- 0-1背包问题(DP)
- 如果要将整数A转换为B,需要改变多少个bit位?
- 二进制小数
- Caffe图片特征提取(Python/C++)
- 数据结构与算法:python语言描述之堆栈
- PAT 1006. 换个格式输出整数 (15);JAVA;Python实现
- SVM入门实例可运行python代码完整版(简单可视化)
- TF-IDF算法解析与Python实现方法详解
- python第一步:安装ipython
- 《笨办法学Python》 第22课手记