在python2.6以上的版本中自带了将十进制转化为二进制的函数bin()。
看一下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) '' >>>
如果不用这个方法的话,参考了一下水木社区ann77同学的代码,改写了一个自己的转换二进制的代码。同样需要支持正负数情况。
>>> 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
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203021.html原文链接:https://javaforall.net
