1

私はバイナリ変換の初心者です。私はPython、Bash、AWKを毎日使用しています。

これらの言語でのバイナリ変換のアプリケーションを見たいです。例えば、私はあなたがあなたの仕事でそれによって解決する問題に興味があります。

Python / Bash / AWKのどこでバイナリ変換を使用しますか?

コードの例を見たいのですが。

4

3 に答える 3

3

コマンドラインで Python を使用して、2 進数の文字列を数値に変換します。

binary=00001111
DECIMAL=$(python -c "print int('$BINARY', 2)")
echo $decimal

int 関数のドキュメントを参照してください。

ああ、待って、質問を読み違えました。バイナリに変換すると何が得られるのか知りたいのです。まあ、それは「バイナリに変換する」という意味に依存します。百万個の整数を含むファイルを保存したいとします。整数は 0 から 32,000 の間になります。それらをテキストとして保存する場合、数値ごとにせいぜい 2 バイト (1 桁の数値と区切り記号)、最悪でも 6 バイト (5 桁の数値と区切り記号) が必要で、数値あたりの平均サイズは 4.6 バイトです (数学についてはコメントを参照してください)。また、15 番目の数を簡単に選択する方法もありません。それらを 16 ビット整数 (バイナリ) として格納すると、すべての数値が正確に 2 バイトを占めることになりseek、offset することで 15 番目の数値を見つけることができます。2*(15-1)2 バイトを読み取ります。また、テキスト ベースのバージョンで数学を行う場合、私 (または私の言語) はまず文字列を数値に変換する必要がありますが、バイナリ バージョンは既に 16 ビットの数値です。

つまり、要するに、バイナリ型を使用して

  1. スペースを節約
  2. 一貫したレコードサイズを持つ
  3. プログラムを高速化する
于 2009-04-16T15:36:17.597 に答える
2

シェルでは、次の便利な使い方がありdcます。

echo 2i 00001111 pq | dc

2i は、入力数値の基数が 2 であることを意味します。

pq の意味:印刷して終了します。

他の方法は次のとおりです。

echo 2o 15 pq | dc

この機能を実際の状況で使用したことを覚えていません。

于 2009-04-16T15:45:12.053 に答える
0

bin()Pythonの新しいバージョンには、intを取り、形式などのバイナリリテラルを返すと私が信じている関数が存在します0b011010

于 2011-07-06T17:35:53.217 に答える