byteをhex文字列に変換する (byteを16進数文字列に変換する)

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 件のコメント :

コメントを投稿