0
私は個人的なプロジェクトのために手作業でハフマン符号化を実装したいと思います。私が立ち往生している部分は、コーディングを保存する方法です。 65ビットを使用して入力をエンコードすることができます。私は9バイトのバイトスライスをラップし、その要素を1つの連続したメモリとして扱いますか?または、私がより直接的にしたいことをする方法がありますか?Goで純粋にバイナリ情報を読み書きする最善の方法は何ですか?
私は個人的なプロジェクトのために手作業でハフマン符号化を実装したいと思います。私が立ち往生している部分は、コーディングを保存する方法です。 65ビットを使用して入力をエンコードすることができます。私は9バイトのバイトスライスをラップし、その要素を1つの連続したメモリとして扱いますか?または、私がより直接的にしたいことをする方法がありますか?Goで純粋にバイナリ情報を読み書きする最善の方法は何ですか?
これには、おそらくビット配列データ構造を使用できます。これをチェックしてくださいhttps://godoc.org/github.com/golang-collections/go-datastructures/bitarray
私はあなたが何を聞いているのかは分かりません(他の人もいるかもしれませんが)。あなたがしようとしていることの詳細を教えてください。また、Goにはクラスがありません。 –
長さが不明なバイナリデータを格納する方法を理解しようとしています。私は非公式の意味でクラスを意味する(私はあなたがGoでキーワード "タイプ"を使用することを知っている)。私が65ビットを持っている場合、どのようにそれらを連続して保存しますか? – michaelAdam
私はそれをどのように操作する必要があるかによって異なります。あなたは確かに65ビットを格納するために9バイトのスライス(または配列)を使用することができます。あなたは、あなたがそれを操作する必要があるどのような方法でも、その65ビットの値で操作できるようにするインターフェイスを作成することについて考えることができます。それは、あなたが内部的にどのように表現すべきかという良いアイデアを与えるかもしれません。ビットのストリームを表すこれらの65ビット値のいくつかを使用する場合は、1ビットを格納するためにバイト全体を浪費するよりも効率的なやり方が望まれます。 –