我不能想出一種增加十六進制值的方法。假設我有一個變量 x = b'\ x00',我只是想繼續以這種格式遞增它,我該怎麼做呢? x = b'\ x00'... x ='\ xff'... x ='\ xff \ xff'。再次我想保留它作爲一個字符串變量,不一定是十六進制格式,但我只想從0位開始,並增加任何位。在Python中增加十六進制的方法?
-1
A
回答
0
在Python 3中,最簡單的方法是使用數字您與轉換爲bytes
與to_bytes
方法的int
:
for i in range(0xffff + 1):
# The "or 1" ensures 0 produces b'\x00' as output, not b''
x = i.to_bytes((i.bit_length() + 7) // 8 or 1, 'big')
即環路產生所有指定(從b'\x00'
到b'\xff\xff'
)的值,並且可以對你關心的任意範圍進行微調。
還有其他的方法來直接產生新的bytes
對象(更容易bytearray
,但bytes
可以做到的),但他們不必要的複雜性,並可能慢啓動,例如增加一個bytearray
,但我會避免一般。
+0
謝謝你的回答! I.bit_length部分究竟發生了什麼? – bbymintdrop
+0
@bbymintdrop:您需要將位長轉換爲字節長度,四捨五入(因爲1-8位需要1個字節,9-16需要2個等)。 '//'是分區劃分,但是可以將小區劃分定義爲'(num +(den-1))// den';因爲它是純粹的整數數學,它的速度更快,並且保證了'math.ceil(num/den)'不會的準確性。 – ShadowRanger
相關問題
- 1. python中的十六進制
- 2. Python十六進制
- 3. 十六進制加法C++
- 4. 爪哇十六進制數增加1
- 5. C++中的十六進制加法
- 6. 加十六進制
- 7. DES使用十六進制密鑰python的加密和解密十六進制
- 8. 十六進制串&十六進制
- 9. python字符串與十六進制轉義十六進制值
- 10. 在Python中將十六進制值轉換爲十進制
- 11. 如何在Python中將十六進制轉換爲十進制?
- 12. Python十六進制比較
- 13. 十六進制格式在Python中
- 14. iOS的十六進制加法
- 15. 在C++中將十六進制十六進制字符標記爲十進制
- 16. 將十進制轉換爲十六進制和十六進制
- 17. 將十六進制轉換爲python中的十進制
- 18. 添加十六進制值以得到十六進制結果
- 19. Python二進制到多十六進制
- 20. 如何在java中增加十六進制,但保持填充?
- 21. 如何在期望中增加一個十六進制循環
- 22. 如何在Perl 5.8中增加十六進制字符串?
- 23. Python中的十六進制掩碼
- 24. Str到Python中的十六進制
- 25. Python中十六進制值的單詞
- 26. 十六進制加減
- 27. 加/減十六進制
- 28. 如何在AES加密中使用十六進制十六進制密鑰?
- 29. 十六進制
- 30. 十六進制
爲什麼你不是以一個數字開頭呢? –
「將其保留爲字符串」*爲什麼*?是否有**任何**強制性理由不轉換爲數字,然後返回輸出字符串? –
歡迎來到SO。請花時間閱讀[問]及其中包含的鏈接。 – wwii