サンプル入力/出力

サンプル入力/出力

/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
$ 

関連情報