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

Python 如何在sage中将十进制转换为固定长度的二进制,python,sage,Python,Sage,我想把十进制数转换成二进制数。我期待在固定长度的二进制数。示例:如果固定长度为5,则将3转换为00011。我需要在sage中使用这些函数,您可以编写一个小函数来实现这一点,如: 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.

我想把十进制数转换成二进制数。我期待在固定长度的二进制数。示例:如果固定长度为5,则将3转换为00011。我需要在sage中使用这些函数,您可以编写一个小函数来实现这一点,如:

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()

如果您请求的长度太短,则会引发ValueError。

您可以编写一个小函数来执行此操作,如:

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()

如果您要求的长度太短,则会引发ValueError。

是否显示您是否尝试过并显示问题所在?是否显示您是否尝试过并显示问题所在?