bashの算術式についての記事を見てて、ビットシフトを算術式でできるよというのを見かけたので、それを利用してビット数一覧を出力させてみる。

eval echo "\$((1<<"{0..16}"))" | fmt -1
eval echo "\$((1<<"{0..32}"))" | fmt -1 | numfmt --to=iec # MBとかに変換する
blacknon@BS-PUB-UBUNTU-01:~$ eval echo "\$((1<<"{0..16}"))" | fmt -1
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
blacknon@BS-PUB-UBUNTU-01:~$ eval echo "\$((1<<"{0..32}"))" | fmt -1 | numfmt --to=iec # MBとかに変換する
1
2
4
8
16
32
64
128
256
512
1.0K
2.0K
4.0K
8.0K
16K
32K
64K
128K
256K
512K
1.0M
2.0M
4.0M
8.0M
16M
32M
64M
128M
256M
512M
1.0G
2.0G
4.0G

…まぁ、実はseq使ったほうが短いのだけど。

seq -f'2^%g' 0 32 | bc | numfmt --to=iec
blacknon@BS-PUB-UBUNTU-01:~$ seq -f'2^%g' 0 32 | bc | numfmt --to=iec
1
2
4
8
16
32
64
128
256
512
1.0K
2.0K
4.0K
8.0K
16K
32K
64K
128K
256K
512K
1.0M
2.0M
4.0M
8.0M
16M
32M
64M
128M
256M
512M
1.0G
2.0G
4.0G