繁体   English   中英

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

[英]Python Converting A String to binary then an INT

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

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

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

(在这种情况下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

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

您可以在此处了解有关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

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

s = '00000000.00000000.00101111.11111111'

您可以在一行中获取整数:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM