[Python] 数値文字(hex)をASCII文字に変換する

前回の続きですが、文字列を分割した後は分割した文字列を16進数数値としてASCII文字に変更する方法です。 これをしたくて前回の事を調べました。 変換するには、いくつかのステップが必要です。 1. 文字列を16進数文字列として数値変換する 2. 変換した数値をASCIIとして文字列にする ```python `gutter:true; #!/usr/bin/env python3 import sys def split_word(s, chunk): a = zip(*[s[i::chunk] for i in range(chunk)]) return [''.join(t) for t in a] for line in iter(sys.stdin.readline, ""): words = line.rstrip() num_words = split_word(words, 2) for hex_num in iter(num_words): # 16進数文字列を数値に変換 int_val = int(hex_num, 16) # 数値をASCIIに変換 print(chr(int_val), end="") # 最後に改行を入れる print("") ``` 16進数の文字列(0xが先頭に付いていない)を数値に変換するには、int関数で16を指定します。 ASCIIに変換する際には、chr関数に数値を渡します。 私が動作させた時には、変な数値が入るとエラーになったので、chrに渡す数値がASCIIの文字列の範囲か調べた方が良いです。

0 件のコメント :

コメントを投稿