搜来的十进制到2进制转换(bit-string位操作的应用)
时间:2008-02-26 来源:stlaw
http://www.daniweb.com/code/snippet285.html
def int2bin(n, count=24):
"""returns the binary of integer n, using count number of digits"""
return "".join([str((n >> y) & 1) for y in range(count-1, -1, -1)])
很强大,这样的感觉
关于位操作:
早已遗忘在爪哇国度,问了同事才明白之所以然;
x | y : 位或
x ^ y : 位异或
x & y : 位与
x >> n : 位右移n,结果等于x / power(2,n)
x << n : 位左移n,结果等于x * power(2,n)
~x : 位反,得到反码,结果就是-(x+1)
补码: 反码+1
负数的2进制表达是:
正数 --> 反码 —-> 补码
在 -y = ~x 前提下:
x + ~x = F
(F为全1)
-y = ~y + 1
y + ~y = F
==>>
~x = ~y + 1
x+1 = y
很强大,这样的感觉
关于位操作:
早已遗忘在爪哇国度,问了同事才明白之所以然;
x | y : 位或
x ^ y : 位异或
x & y : 位与
x >> n : 位右移n,结果等于x / power(2,n)
x << n : 位左移n,结果等于x * power(2,n)
~x : 位反,得到反码,结果就是-(x+1)
补码: 反码+1
负数的2进制表达是:
正数 --> 反码 —-> 补码
在 -y = ~x 前提下:
x + ~x = F
(F为全1)
-y = ~y + 1
y + ~y = F
==>>
~x = ~y + 1
x+1 = y
相关阅读 更多 +