バイナリ形式と ASCII 形式の違いを知りたかったのです。問題は、行列操作を行うために PETSc を使用する必要があり、すべての行列がテキスト ファイルに保存されていることです。
PETSc には、これらの形式を処理するためのさまざまな規則があります。テキスト ファイルの形式は言うまでもなく、これらの形式が何であるかもわかりません。
あるフォーマットを別のフォーマットに変換する方法はありますか?
これは基本的な質問です。詳細な回答は、これを理解するのに本当に役立ちます。
バイナリ形式と ASCII 形式の違いを知りたかったのです。問題は、行列操作を行うために PETSc を使用する必要があり、すべての行列がテキスト ファイルに保存されていることです。
PETSc には、これらの形式を処理するためのさまざまな規則があります。テキスト ファイルの形式は言うまでもなく、これらの形式が何であるかもわかりません。
あるフォーマットを別のフォーマットに変換する方法はありますか?
これは基本的な質問です。詳細な回答は、これを理解するのに本当に役立ちます。
直接の質問に答えると、ASCII とバイナリの違いはセマンティクスです。
ASCII はテキストとして解釈されるバイナリです。バイナリ コードの小さなサブセットのみが、理解可能な文字 (10 進数 32 ~ 126) として解釈できます。それ以外はすべて特殊文字 (ライン フィード、システム ベル、またはまったく別のものなど) です。より大きな文字は、他のアルファベットの文字にすることができます。 .
一般的なバイナリ データは ASCII 形式として解釈できますが、ASCII テキストでない場合は意味がない場合があります。
一般的な経験則として、ファイルをテキスト エディター (Microsoft Word などではなく、メモ帳など) で開いた場合、ファイルが完全に文字で構成されているか、主に文字、数字、およびスペースで構成されているように見える場合、ファイルはおそらくASCII として安全に解釈されます。テキスト エディタでファイルを開いてノイズがある場合は、生のバイナリとして解釈する必要がある可能性があります。
私はあなたが質問しているプログラムにあまり詳しくありません。私があなたの状況にあった場合、プログラムのドキュメントを参照して、「バイナリ」データ ストリームがどのような形式である必要があるかを調べます。詳細な説明が必要です。または、バイナリ データを生成するための付属のユーティリティ。自分でデータを生成した場合、おそらく ASCII 形式です。
行列がテキスト ファイルにあり、プログラムがバイナリ ファイルからのみ読み取る場合は、おそらくうまくいきません。
バイナリ形式は、内部で使用するデータ構造 (またはシリアル化形式) の生のバイトです。
プログラム自体の助けがなければ、テキストをバイナリに変換する望みはほとんどありません。
プログラムにインポート形式がある場合は、それを探します。