函数将32位二进制数转换为4个独立的8位部分

2024-04-19 05:49:05 发布

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

Python中是否有内置函数将32位二进制数拆分为4个独立的8位二进制数?我试图把一个二进制IP地址转换成点十进制形式,并试图把数字分开,似乎不知所措。你知道吗

示例:

转弯本:100000011111110000001100001111你知道吗

转入:10000000 11111111 00000011 00001111

这样我就可以从那里转换成十进制。谢谢!你知道吗

编辑:我已经能够将字符串分为四个部分,但现在我正在尝试将这些二进制字符串值转换为十进制数。我有没有办法定义每个新的字符串部分,这样我就可以对它们使用int函数?你知道吗


Tags: 函数字符串编辑示例定义二进制数字内置
2条回答

为了解决将字符串分成4个部分的问题,我首先使用一个列表理解和一些字符串拼接。 二进制字符串=“10000001111111100000011001111”

data = [binary_string[:8], binary_string[8:16], binary_string[16:24], binary_string[24:32]]

写这篇文章的一种更简洁的方法是使用列表理解并在字符串上增加8

data = [binary_string[i:i+8] for i in range(0,32,8)]

要回答将它转换为数字的第二个问题,可以使用int函数强制转换它。你知道吗

data = [int(num) for num in data]

需要注意的是,这可能是一个单向函数,因为如果数字以0开头,它们将被删除。因此,要将它们转换回长度为8的字符串,可以使用zfill函数:

data = [str(num).zfill(8) for num in data]
list(map(lambda s: int(s, base=2), [x[k:k + 8] for k in range(0, 32, 8)]))

相关问题 更多 >