首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sage中如何将十进制转换为固定长度的二进制

在sage中如何将十进制转换为固定长度的二进制
EN

Stack Overflow用户
提问于 2016-02-29 05:00:43
回答 1查看 1.5K关注 0票数 1

我想把十进制转换成二进制。我期待在固定长度的二进制数。如果固定长度为5,则示例3转换为00011。我需要在圣贤那里工作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 15:31:04

您可以编写一个小函数来完成这个任务,例如:

代码语言:javascript
复制
def binary(n, length=5):
    """
    Return a binary string of specified length for this integer

    The binary string is padded with initial zeros if needed.
    The default length of 5 can be overriden.

    EXAMPLES::

        sage: binary(3)
        '00011'
        sage: binary(3, length=7)
        '0000011'
        sage: binary(3, length=1)
        ---------------------------------------------------------------------------
        ValueError                                Traceback (most recent call last)
        ...
        ValueError: Writing 3 in binary requires more than 1 bits
    """
    if length < n.nbits():
        raise ValueError('Writing {} in binary requires more than {} bits'.format(n,length))
    return '0' * (length-n.nbits()) + n.binary()

然后按以下方式使用:

代码语言:javascript
复制
sage: binary(3)
'00011'
sage: binary(3, length=7)
'0000011'

如果您要求的长度太短,它将引发ValueError。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35692266

复制
相关文章

相似问题

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