如何在Python 2.5中将整数转换为二进制。

1 投票
4 回答
3200 浏览
提问于 2025-04-15 17:34
print 077777#how can i get binary

我用的是Python 2.5版本。

4 个回答

1
n = 1234

"".join([["0", "1"][(n >> i) & 1] for i in reversed(range(n.__sizeof__()))])
"".join([["0", "1"][(n>>i)&1] for i in range(log(n,2)+1)])

虽然不确定sizeof是否正确。你也可以计算最高位被设置的值,然后只打印那些。

6

首先,创建一个十六进制字符和二进制序列之间的对应关系图。然后,把数字输入进去(注意:这个方法只适用于非负数)。

def bin(value):
    binmap = {'0': '0000', '1': '0001', ..., 'f': '1111'}
    return ''.join(binmap[x] for x in ('%x' % (value,))).lstrip('0') or '0'
1

在Python 2.5中,获取一个整数的二进制字符串最简单(但不是最快)的方法是:

def dobin(n):
  digs = []
  s = ''
  if n<0:
    s = '-'
    n = -n
  while True:
    digs.append(str(n % 2))
    n /= 2
    if not n: break
  if s: digs.append(s)
  digs.reverse()
  return ''.join(digs)

你是在追求速度,还是想要清晰易懂呢?

撰写回答