python 十进制转换二进制
2014-03-04 14:57
302 查看
在python2.6以上的版本中自带了将十进制转化为二进制的函数bin()。
看一下bin.__doc__怎么说的。
这就是一个将十进制转换为二进制的函数,输出是一个字符串。那么输出看看。
结果是二进制的一个字符串表示,支持正负数,不过前面多了两位'0b'。
可以在使用时自己再封装一下
如果不用这个方法的话,参考了一下水木社区ann77同学的代码,改写了一个自己的转换二进制的代码。同样需要支持正负数情况。
采用算法是主流的除2取余,再逆序排列的方法。
以上代码如有缺陷和改善建议,欢迎提出,以便及时更正!
看一下bin.__doc__怎么说的。
>>> bin.__doc__ 'bin(number) -> string\n\nReturn the binary representation of an integer or long integer.' >>>
这就是一个将十进制转换为二进制的函数,输出是一个字符串。那么输出看看。
>>> bin(18) '0b10010' >>> bin(-24) '-0b11000' >>> bin(0) '0b0' >>>
结果是二进制的一个字符串表示,支持正负数,不过前面多了两位'0b'。
可以在使用时自己再封装一下
>>> def mybin(x): return bin(x).replace('0b', '') >>> >>> mybin1(-15) '-1111' >>> mybin1(0) '0' >>> mybin1(255) '11111111' >>>
如果不用这个方法的话,参考了一下水木社区ann77同学的代码,改写了一个自己的转换二进制的代码。同样需要支持正负数情况。
采用算法是主流的除2取余,再逆序排列的方法。
>>> def mybin(x): def gen(x): y = abs(x) while y > 0: yield y % 2 y = y >> 1 else: if x == 0: yield 0 l = [ i for i in gen(x)] l.reverse() if x >= 0: print ('%d' * len(l) % tuple(l)) else: print '-' + ('%d'* len(l) % tuple(l)) >>> mybin(-15) -1111 >>> mybin(15) 1111 >>> mybin(0) 0
以上代码如有缺陷和改善建议,欢迎提出,以便及时更正!
相关文章推荐
- 使用Python二进制与十进制之间的转化,可以操作浮点数!
- 基础的十进制按位运算总结与在Python中的计算示例
- python 自己写的十进制转所有进制
- 十进制转换二进制
- 十进制转换二进制
- Python 进制转换 二进制 八进制 十进制 十六进制
- python常用的十进制、16进制、字符串、字节串之间的转换
- 位运算应用:十进制转换二进制再输出
- python将二进制转换为十进制
- 十进制转 n! 进制(python实现)
- Python十进制数学计算模块decimal
- Python实现的十进制小数与二进制小数相互转换功能
- 十进制转换二进制
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- python十分简单实现十进制到任意进制的转换
- 十进制转换二进制
- python将十六进制字符串转为十进制数字
- 十进制转换二进制
- 算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
- Python小练习 - 用递归将十进制转化为二进制