簡體   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