0

バイナリデータをエンコードするために1つのグループとして5ビットを使用するエンコードはありますか?

AZには26文字が含まれ、0〜9には10文字が含まれます。5ビットエンコーディングに十分な合計36文字があります(32の組み合わせのみ)。

OctalやHexadecimalの代わりに5ビットエンコーディングを使用しないのはなぜですか?

4

3 に答える 3

1

はい。Base32です。名前はTriacontakaidecimalかもしれませんが、長すぎて覚えにくいので、単純にbase 32と呼んでいます。同様に、6 ビットのグループ用のBase64もあります。

base32 は、base64 と比較して多くのスペースを浪費し、16 進数 (8、16、32、または 64 で正確に割り切れる) と比較して奇数のビットを使用するため、16 進数や base64 よりも一般的ではありません。6 も偶数なので、バイナリ コンピューターでは 5 よりも優れています。

于 2013-08-10T12:47:03.703 に答える
1

@S.Lott のコメントで述べたように、base64 (6 ビット) は、コンパクトさが重要な場合にバイナリ データをテキストとしてエンコードするためによく使用されます。

デバッグの目的 (16 進ダンプなど) では、1 バイトのサイズが 4 ビットで割り切れるため、16 進を使用します。そのため、各バイトは、周囲に他のバイトが何であっても、1 つの一意の 2 桁の 16 進表現を持ちます。これにより、16 進ダンプを見るときに個々のバイトを「見る」ことが容易になり、8 ビット 2 進と 2 桁 16 進の間で精神的に変換することも比較的簡単になります。(base64 では、バイトとエンコードされた文字の間に 1:1 の対応はありません。同じバイトでも、その位置と隣接する他のバイトの値に応じて、異なる文字が生成される可能性があります。)

于 2011-04-27T03:10:11.473 に答える
0

もちろん:

Welcome to Clozure Common Lisp Version 1.7-dev-r14614M-trunk  (DarwinX8664)!
? (let ((*print-base* 32)) (print 1234567))
15LK7 
1234567
? (let ((*print-base* 32)) (print (expt 45 19)))
KAD5A5KM53ADJVMPNTHPL 
25765451768359987049102783203125
? 
于 2011-04-27T03:02:59.183 に答える