首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python int转换为二进制字符串?

Python int转换为二进制字符串?
EN

Stack Overflow用户
提问于 2009-03-31 03:04:38
回答 27查看 995.7K关注 0票数 695

在Python中,有没有什么固定的Python方法可以将Integer (或Long)转换成二进制字符串?

在谷歌上有无数的dec2bin()函数...但是我希望我可以使用一个内置的函数/库。

EN

回答 27

Stack Overflow用户

回答已采纳

发布于 2009-03-31 03:17:18

Python的字符串格式方法可以接受格式规范。

代码语言:javascript
复制
>>> "{0:b}".format(37)
'100101'

Format spec docs for Python 2

Format spec docs for Python 3

票数 969
EN

Stack Overflow用户

发布于 2009-03-31 03:17:30

如果您正在寻找与hex()等效的bin(),它是在Python2.6中添加的。

示例:

代码语言:javascript
复制
>>> bin(10)
'0b1010'
票数 592
EN

Stack Overflow用户

发布于 2014-02-12 23:33:29

如果你想要一个不带0b前缀的文本表示,你可以使用这个:

代码语言:javascript
复制
get_bin = lambda x: format(x, 'b')

print(get_bin(3))
>>> '11'

print(get_bin(-3))
>>> '-11'

当您需要n位表示法时:

代码语言:javascript
复制
get_bin = lambda x, n: format(x, 'b').zfill(n)
>>> get_bin(12, 32)
'00000000000000000000000000001100'
>>> get_bin(-12, 32)
'-00000000000000000000000000001100'

或者,如果您更喜欢使用函数:

代码语言:javascript
复制
def get_bin(x, n=0):
    """
    Get the binary representation of x.

    Parameters
    ----------
    x : int
    n : int
        Minimum number of digits. If x needs less digits in binary, the rest
        is filled with zeros.

    Returns
    -------
    str
    """
    return format(x, 'b').zfill(n)
票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/699866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档