web-dev-qa-db-ja.com

コンピューターで16進数を使用する方が、8進数を使用するよりも優れているのはなぜですか?

16進数が提供する利点は何ですか?そして、それは本当に8進数が16進数よりも一般的ではないのですか?

3
Luke Vo

つまり、コンピューター自体は16進数で値を格納せず、2進数として格納します。ただし、主な理由の1つとして、16進数で表すことを選択します。これは、バイト単位のデータを表す最も簡単で簡潔な方法です。

0110 1011 becomes 6B in hex

8進数では、数字を3にグループ化する必要があります。これにより、バイトレベルでの分離ができなくなります。

01 101 011 becomes 153 in octal

最上位桁が3を超えることは決してないことに注意してください。

10
Christian Mann

から ウィキペディア

ただし、最新のコンピューティングプラットフォームはすべて、16ビット、32ビット、または64ビットのワードを使用し、さらに8ビットバイトに分割されています。このようなシステムでは、1バイトあたり3桁の8進数が必要であり、最上位の8進数は2桁の2進数を表します(さらに、次の有効バイトの1ビットがある場合)。 16ビットワードの8進表現には6桁が必要ですが、最上位の8進数字は(非常にエレガントではなく)1ビット(0または1)のみを表します。この表現は、4進数にスミアされているため、最上位バイトを簡単に読み取る方法を提供しません。したがって、2つの16進数が正確に1バイトを指定するため、16進数は今日のプログラミング言語でより一般的に使用されています。

4
mtone

前に述べたように、すべてがバイナリで保存されます。考えてください。バイナリのIPv4アドレス192.168.0.1は、11000000.10100000.00000000.00000001になります。バイナリで記述されたIPv6アドレスを想像してみてください。それは実用的ではないでしょう。

0
Robert