0〜255の16進数を2文字で格納できるため、データを圧縮し、色、IPアドレス、MACアドレスなどのあらゆる種類のデータに使用されます。
私の質問は、なぜ彼らは16ビットで停止したのですか(またはなぜそれが最も一般的に使用されているのですか)?32ビットのアルファベットには十分な文字があり、0〜65536の範囲が同じ量のスペースに含まれ、わずか1600万ではなく280兆色を可能にします。文字の大文字と小文字を区別し、2つの記号を追加すると、64ビットになり、最大43億の値を2つの文字で表すことができます。
これがうまくいくと思う状況のいくつかの例:
IPv4が不足しています。v6が導入されていることは知っていますが、非常に長く、覚えにくいでしょう。192.168.0.1アドレスを取得し、C0.A8.0.1として保存することもできます。64ビットの16進数を使用し、最大8文字のままにすると、40億個ではなく280兆個の組み合わせを使用でき、この問題は発生しません。
上記のように、それはまた、はるかに広い範囲の色を提供します。RAW写真形式では、ファイルサイズが大幅に増加するという欠点を伴いながら、8ではなく32ビットでカラーチャネルごとに記録されます。RGB値が16進数として保存された場合、色の範囲を増やしてもファイルのサイズは変わらないはずです。ピクセルあたり6ビット以内に保存されますが、ベース番号は大きくなります。代わりに、96ビット/ピクセルの数値として記録されますが、これは1600%の非常に不必要な増加であり、写真は20MBを超えます(オンライン計算機によると、32ビットカラーの4K RAWビデオは2.5GBまで可能です)毎秒)。
この部分は実際には質問とは関係ありませんが、数をバイナリからベース88(その後のシンボルがなくなった)に至るさまざまなベース値に変換できるスクリプトを少し前に書きました。同様のものを実装します。例として、ここでは66000.からの出力です
ベース2:11111111111110000
ベースは16:101D0
ベース32:20EG
ベース64:G7G
コードがあり、ここで誰もが興味を持っているならば、それはまだかかわらず、いくつかのバグを持っていると私はからそれを試してみましたマヤ内。少し話題が外れていますが、通常の16進数は元の数値よりも約20%少ないビットであり、ベース88はほぼ50%削減されていることに気づきました。
最後の1つの質問:写真を16進数として保存するというアイデアを誰かが試みましたか?64ビットの16進数を使用し、[64; 1920; Bgh54D; NgDFF4; ...]のようなデータで写真を保存した場合、機能する可能性がありますか?そうでない場合、私はそれを行うことができる何かを作成しようとするかもしれません。