プログラムをしていると2進数のビット列を確認したい場合がある。
そんな時には bc (1) が便利。ビット列以外にも基底数の変換も簡単です。
よく利用するならスクリプトか alias に設定しておくと楽かな。
sample
$ echo "ibase=10; obase=2; 10" | bc ← 10進数の10のビット表示
1010
$ echo "ibase=16; obase=2; 20" | bc ← 16進数の20のビット表示
100000
$ echo "ibase=10; obase=16; 30" | bc ← 10進数の30の16進数表示
1E
基底数の変換は gdb (1) でも可能だけどビットまでは表示できない。
sample
(gdb) p/x 10 ← 10進数の10を16進数で表示
$1 = 0xa
(gdb) p/x 20 ← 10進数の20を16進数で表示
$2 = 0x14
(gdb) p/x $1 + $2 ← 10進数の10+20を16進数で表示
$3 = 0x1e
(gdb) p $2 - $1 / 3 ← 10進数の20 - (10 / 3)を10進数で表示
$4 = 17
(gdb) p ($2 - $1) / 3 ← 10進数の(20 - 10) / 3を10進数で表示
$5 = 3
(gdb) q