僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
LED Badge
の
pythonスクリプトにあった16進値のコードを解読。
16進値とおぼしき文字列が、11個ずつ並んでいる。
一つの値が、液晶11ドットの横一行を2進値で現していると
想定して、かつ値の一行(16進値11個)で
一文字になると想定して。
以前書いたコードを探して、適当に検索もかけて、なんとか。
format()をゼロ埋めして、
正規表現で隙間を入れて、ついでに、
よせばいいのに
エスケープシーケンスまでつけて。
#!/usr/bin/env python3 import re mystr = [0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00] for x in mystr: decode = '{:>10}'.format(bin(x)).replace('0b','').replace(' ','0') myline = re.sub('(.)', r'\1 ', decode) print(myline.replace("1", "\33[31m1\033[00m"))
$ python3 mydecode.py 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。