在半字节组中打印二进制数的简单方法

Tja*_*art 4 python python-3.x

为了提高可读性,我想打印一个由4个(半字节)组成的二进制数,用下划线分隔.

例如:

9     => "1001"
60    => "0011_1100"
100   => "0110_0100"
63000 => "1111_0110_0001_1000"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以做到这一点?

hil*_*lem 6

将逻辑拆分为生成4的组并加入.

def gen(x):
    while x:
        yield bin(x % 16)[2:].zfill(4)
        x >>= 4


def nibble(x):
    return "_".join(gen(x))
Run Code Online (Sandbox Code Playgroud)

  • 当然,例如`'_'.join(list(gen(x))[::-1])`。 (2认同)