/dev/dsp
これはおよびと相互作用する文脈ですpacat
。
理想的には、エンコードメカニズム(ビッグエンディアン対リトルエンディアン、char / short / long)を指定できることを願っています。
ボーナスとして、何らかの形のバイナリ構造のパッケージングが良いかもしれません。
私は基本的に次のことを考えていました。numpy データ型しかし、殻に。
サンプル入力/出力
> seq 11 | bincat --big -n 1 | hd
01 02 03 04 05 06 07 08
09 0A 0B
答え1
プログラミング言語はこれを簡単に行う必要があります。入力数値リストに64ビット整数(ビッグまたはリトルエンディアン)とデフォルトの32、16、および8ビットを囲む方法があります。
$ cat input
-1
2
$ < input perl -pe '$_=pack "q>",$_' | xxd
00000000: ffff ffff ffff ffff 0000 0000 0000 0002 ................
$ < input perl -pe '$_=pack "q<",$_' | xxd
00000000: ffff ffff ffff ffff 0200 0000 0000 0000 ................
$ < input perl -pe '$_=pack "l",$_' | xxd
00000000: ffff ffff 0200 0000 ........
$ < input perl -pe '$_=pack "s",$_' | xxd
00000000: ffff 0200 ....
$ < input perl -pe '$_=pack "c",$_' | xxd
00000000: ff02 ..
$
他のアプローチを使用するには、バイナリがどのように作成されるかを知る必要があります。そうしないと、数字が完全に間違っている可能性があります。
$ jot 255 | perl -pe '$_=pack "l>",$_' > 32big
$ < 32big perl -nE 'say for unpack "l*",$_' | head -3
16777216
33554432
50331648
$ < 32big perl -nE 'say for unpack "l>*",$_' | head -3
1
2
3
$