Python整数到二进制字符串?

2024-04-25 01:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

实际上,Python已经内置了一些功能,可以执行诸如'{0:b}'.format(42)之类的操作,这将为42101010提供位模式(在字符串中)。


对于更一般的哲学来说,没有一种语言或库能给用户提供他们想要的一切。如果你在一个不能提供你所需要的东西的环境中工作,你应该在开发的过程中收集代码片段,以确保你永远不必写同样的东西两次。例如,伪代码:

define intToBinString, receiving intVal:
    if intVal is equal to zero:
        return "0"
    set strVal to ""
    while intVal is greater than zero:
        if intVal is odd:
            prefix "1" to strVal
        else:
            prefix "0" to strVal
        divide intVal by two, rounding down
    return strVal

它将基于十进制值构造二进制字符串。请记住,这是一个通用的伪代码位,可能不是最有效的方法,但是,随着你提出的迭代,它不会有太大的区别。这其实只是作为一个指导方针,如何可以做到这一点。

一般的想法是使用来自(按优先顺序)的代码:

  • 语言或内置库。
  • 具有适当许可证的第三方库。
  • 你自己的收藏。
  • 一些你需要写的新东西(并保存在你自己的收藏中以备日后使用)。

如果您正在寻找与hex()等价的^{},那么它是在python 2.6中添加的。

示例:

>>> bin(10)
'0b1010'

Python的字符串格式方法可以采用格式规范

>>> "{0:b}".format(37)
'100101'

Format spec docs for Python 2

Format spec docs for Python 3

相关问题 更多 >