在python2.6以上的版本中自带了将十进制转化为二进制的函数bin()。
看一下bin.__doc__怎么说的。
>>>print bin.__doc__
bin(number) -> string
return the binary represiontation of an integer or long integer
这就是一个将十进制转换为二进制的函数,输出是一个字符串。那么输出看看。
>>>a = 50
>>>bin(a)
‘0b110010’
的确输出了,但是多了前面两位’0b’。那么在输出的时候用bin(a)[2:]就可以避免了。
再来说说怎么将二进制转换为十进制。
先看看这个函数int(),使用方法是int(x, base)其中base是可选项。这个函数的__doc__大概讲的是在可以的情况下,将一个字符串或者数字转化为一个整型数字。浮点数将去掉小数位;对于字符串,需要用到base参数。
对于浮点数的这个用法一般人都会比较清楚。对于字符串的这个,初步了解到了可以这么用。
>>>a=’1010′
>>>int(a,2)
10
可以看出把二进制表示的一个字符串变成了十进制。同理,对于十六进制也可以这么干。
>>>a=’1a’
>>>int(a,16)
26
这个就是进制间的转换问题。怎么把十进制转换成十六进制,在不用自己编函数的情况下我还不知道有什么方法。有朋友知道可以分享下。
关于位运算,python提供了以下方法,:&(按位与),|(按位或),^(按位异或),~(按位取反),>>(右移运算),<<(左移运算)。优先级从高到低依次为:~, & , ^, |。