[英]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.