现在的位置: 首页 > 综合 > 正文

python 十进制与二进制以及位运算

2018年04月02日 ⁄ 综合 ⁄ 共 759字 ⁄ 字号 评论关闭

From: http://blog.sina.com.cn/s/blog_681de30a01013uiw.html

   在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提供了以下方法,:&(按位与),|(按位或),^(按位异或),~(按位取反),>>(右移运算),<<(左移运算)。优先级从高到低依次为:~, & , ^, |。

抱歉!评论已关闭.