在 Python 中的二进制数中添加下划线作为分隔符
Add underscore as a separator in a binary number in Python
我正在尝试将十进制数转换为 17 位二进制数,并在其中添加下划线作为分隔符。
我正在使用以下代码 -
id = 18
get_bin = lambda x, n: format(x, 'b').zfill(n)
bin_num = get_bin(id, 17)
我得到的输出是 -
的形式
00000000000010010
我正在尝试获得以下输出 -
0_0000_0000_0001_0010
如何获取?
一种方式:
import textwrap
result = '_'.join(textwrap.wrap(bin_num[::-1], 4))[::-1]
输出:
'0_0000_0000_0001_0010'
使用good'ol pal,Python的Format Specification Mini-Language
id = 18
width = 17
bin_num = format(id, '0{}_b'.format(width+3))
print(bin_num)
#0_0000_0000_0001_0010
您需要在格式字符串中添加_,并且您不需要使用zfill - 017_b格式最小长度为17个字符,零填充space,并在两者之间使用 _。
print(format(18, '021_b'))
给予
0_0000_0000_0001_0010
另请注意,在二进制模式下,下划线始终按照您的要求每隔 4 位出现一次。
More
我正在尝试将十进制数转换为 17 位二进制数,并在其中添加下划线作为分隔符。 我正在使用以下代码 -
id = 18
get_bin = lambda x, n: format(x, 'b').zfill(n)
bin_num = get_bin(id, 17)
我得到的输出是 -
的形式00000000000010010
我正在尝试获得以下输出 -
0_0000_0000_0001_0010
如何获取?
一种方式:
import textwrap
result = '_'.join(textwrap.wrap(bin_num[::-1], 4))[::-1]
输出:
'0_0000_0000_0001_0010'
使用good'ol pal,Python的Format Specification Mini-Language
id = 18
width = 17
bin_num = format(id, '0{}_b'.format(width+3))
print(bin_num)
#0_0000_0000_0001_0010
您需要在格式字符串中添加_,并且您不需要使用zfill - 017_b格式最小长度为17个字符,零填充space,并在两者之间使用 _。
print(format(18, '021_b'))
给予
0_0000_0000_0001_0010
另请注意,在二进制模式下,下划线始终按照您的要求每隔 4 位出现一次。 More