亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在字符串中添加十六進制字節?

如何在字符串中添加十六進制字節?

呼喚遠方 2022-08-16 16:27:24
我有這個十六進制字節字符串,用空格分隔:byteString = "7E 00 0A 01 01 50 01 00 48 65 6C 6C 6F"如何以這種方式添加字節:01 + 01 + 50 + 01 + 00 + 48 + 65 + 6C + 6C + 6F = 247
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

考慮到您將十六進制序列作為str字節),您需要做的是:

  • 將序列拆分為較小的字符串,每個字符串表示一個字節(2個十六進制數字):“7E”,“00”,...

  • 將每個這樣的字符串轉換為與十六進制表示相對應的整數值(結果將是整數列表)

  • 添加所需的值(忽略 1st 3)

>>> byte_string = "7E 00 0A 01 01 50 01 00 48 65 6C 6C 6F"

>>>

>>> l = [int(i, 16) for i in byte_string.split(" ")]  # Split and conversion to int done in one step

>>> l

[126, 0, 10, 1, 1, 80, 1, 0, 72, 101, 108, 108, 111]

>>>

>>> [hex(i) for i in l]  # The hex representation of each element (for checking only)

['0x7e', '0x0', '0xa', '0x1', '0x1', '0x50', '0x1', '0x0', '0x48', '0x65', '0x6c', '0x6c', '0x6f']

>>>

>>> s = sum(l[3:])

>>>

>>> s

583

>>> hex(s)

'0x247'


查看完整回答
反對 回復 2022-08-16
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

您需要分兩部分解決這個問題 - 將字符串轉換為數字列表,然后對列表求和。為此,您可以使用內置的bytearray.fromhex和sum函數:


byteString = "7E 00 0A 01 01 50 01 00 48 65 6C 6C 6F"

numberList = bytearray.fromhex(byteString)

total = sum(numberList)


查看完整回答
反對 回復 2022-08-16
  • 2 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號