bytearrayを使っていて、デバッグ用に内容を確認したい時にHexで表示する方法です。
## byteをHexの文字に変換する方法
Hex文字に変換するのは簡単で、formatと書式'02x'を使います。
```python
format(0x12, '02x')
# '7b'
```
## bytearrayを一気にHex文字列に変換する方法
bytearrayの場合は配列なので、以下の方法で一気に変換することができます。
```python
print(''.join(format(x, '02x') for x in byte_list))
```
実際の使用例はこんな感じです。
```python
# coding: UTF-8
byte_list = bytearray()
intVal = 100
byte_list.append(intVal)
byte_list.append(10)
byte_list.append(0x57)
# スペース無しで表示 (640a57)
print(''.join(format(x, '02x') for x in byte_list))
# 1バイト毎にスペースを入れて表示(64 0a 57)
print(' '.join(format(x, '02x') for x in byte_list))
```
pythonを使うと、シェルスクリプトでは少し扱いづらいbyte操作ができるのでbyte系のデータを作成する時にはpythonを使いました。
Excelとかでできれば、もっと視覚的にデータ作成できるかもしれませんが、また調べたら記事にしたいと思います。
0 件のコメント :
コメントを投稿