私はかなり多くのビットシフト操作を含むコードをデバッグしています。
これが私が使用するものです:
$ echo 'obase=2;598980975283696640' | bc
100001010000000000100000011000000011000000000111010000000000
スペースで区切られたニブル出力を取得する簡単な方法はありますか?例えば
1000 0101 0000 0000 0010 0000 0110 0000 0011 0000 0000 0111 0100 0000 0000
ご回答ありがとうございます!
編集:返信ありがとうございます!しかし、
別の番号262148で試してみました。
しなければならない:
100 0000 0000 0000 0100
しかし、それは:
1000 0000 0000 0000 100
正しい結果を得るには、スクリプトが文字列を逆に検索する必要があると思いますか?
ベストアンサー1
echo 'obase=2;598123123980975281233696640' | BC_LINE_LENGTH=0 bc |
rev | fold -w4 | paste -sd ' ' - | rev
または:
echo 'obase=2;598123123980975281233696640' | BC_LINE_LENGTH=0 bc | sed ':1
s/\(.*[01]\)\([01]\{4\}\)/\1 \2/;t1'
BC_LINE_LENGTH=0
bc
70列に数字の改行を停止することです。しかし、これはGNUに固有のものです。rev
標準コマンドではありませんが、一般的です。