Python将字符串转换为二进制,然后转换为INT



我正在处理IPV4分解,其中我在字符串变量中有必要的值来表示二进制

(例如:00000000.00000000.00001111.11111111(这是一个字符串

我需要一种方法将这个字符串转换为二进制,然后将其正确转换为正确的整数值

(在这种情况下为0.0.15.255(

我看到过一些帖子询问类似的问题,但试图将其应用于我正在做的工作却没有成功

抱歉,如果这没有意义,这是我第一次在这里提出问题

您可以使用int()base参数来实现这一点。

您可以了解更多关于int(x,base)的信息-点击此处

  • '.'拆分字符串并将其存储在列表lst
  • 对于lst中的每个项,使用int(item, base=2)将该项(二进制字符串(转换为十进制,然后将其转换为字符串类型
  • 使用.加入lst的内容
s = '00000000.00000000.00001111.11111111'
lst = s.split('.')
lst = [str(int(i,2)) for i in lst]
print('.'.join(lst))
# Output
0.0.15.255

首先在.上拆分字符串,然后使用int内置传递base=2将每个字符串转换为二进制表示的整数等价物,然后转换为字符串,最后在.上将它们全部连接起来

>>> text = '00000000.00000000.00001111.11111111'
>>> '.'.join(str(int(i, base=2)) for i in text.split('.'))
# output
'0.0.15.255'

您应该对数据进行拆分、转换和组合。

data = "00000000.00000000.00001111.11111111"
data_int = ".".join([str(int(i, 2)) for i in data.split(".")])
print(data_int)  # 0.0.15.255

欢迎!一旦你有一个像这样的字符串

s = '00000000.00000000.00101111.11111111'

你可以在一行中得到整数:

int_list = list(map(lambda n_str: int(n_str, 2), s.split('.')))

相关内容

最新更新