将点十进制IP地址转换为二进制(Python)

2024-09-30 18:32:10 发布

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

我需要一个程序,将用户输入的IPv4地址转换为二进制和基数为10的地址。像这样:

input: 142.55.33.1
output (base 10): [2385977601]
output (base 2): [10001110 00110111 00100001 00000001]

到目前为止,我已经成功地将其转换为base10地址,但我似乎无法绕过base2问题:

^{pr2}$

任何帮助都将不胜感激。谢谢您。在


Tags: 用户程序inputoutputbase地址二进制ipv4
2条回答

使用format

>>> text = '142.55.33.1'
>>> ' ' .join(format(int(x), '08b') for x in text.split('.'))
'10001110 00110111 00100001 00000001'

如果您需要列表:

^{pr2}$

在这里,format将整数转换为二进制字符串表示:

>>> format(8, 'b')
'1000'
>>> format(8, '08b')  #with padding
'00001000'

使用^{}

>>> ip_address = '142.55.33.1'
>>> ['{:08b}'.format(int(n)) for n in ip_address.split('.')]
['10001110', '00110111', '00100001', '00000001']
>>> ' '.join('{:08b}'.format(int(n)) for n in ip_address.split('.'))
'10001110 00110111 00100001 00000001'

相关问题 更多 >