データ収集系の設定をするときに、直接レジストリのどこか特定のbitを変更したくなったりする。16進数と2進数の変換は、Python3を使うのが楽なのでよく利用しているのだが、特に2進数で桁が多くなるとわかりにくくて困っていた。解決方法を見つけたのでメモ。
-
hex()
16進数で表示 -
int()
10進数で表示 -
bin()
2進数で表示 -
0x
16進数表示 -
0o
16進数表示 -
0b
2進数表示
大抵の場合はこれで良いのだが、2進数はすぐに桁がすごいことになるので普通に表示するともうよくわからない。
>>> bin(0x5642)
'0b101011001000010'
なので、formatを使う。
>>> '{:#0_b}'.format(0x5642)
'0b101_0110_0100_0010'
#
をつけると出力に0b
とか0x
のが付くので何進数で表示しているのかがわかる。
_
をつけると4桁毎に_
をつけてくれるので比較的何桁目なのかが分かり易い。2進数が入力の時は、_
で区切るとわかりやすくなる。数字の中の_
は無視してくれる。
>>> hex(0b011_1001010_10_11)
'0x1cab'