マジック16進数と高オクタン価8進数

この記事はシリーズの一部であり、シリーズインデックスにアクセスします。 ( シリーズインデックス )

あなたがWacky Racesにいない限り、Hexesとracecarsは本当に一緒に行かないのですが、その場合、あなたは失われた原因になるかもしれません(しかし、後でやりますか?)この記事では、 8進数で私たちを速いものにしよう。

以前の読んだことをお勧めします:”バイナリの素晴らしい世界” – 私を信じて、あなたがこの記事を読んでいれば、あなたは数ベースとコンピュータ表現をよりよく知ることができます。 この記事ではこれを参照します。

16進数と8進数は数え切れないほどの2つの方法です

バイナリでは、ベース10、ベース2などの数値ベースについて話しましたか? まあ、16進数と8進数は単純に2つの数え方です。 彼らは後で説明するように、さまざまな理由でコンピュータプログラミングや科学に便利です。

16進数は16進数 (hex – 6 and deca – 10) を表し、8進数は8進数を表します (oct – 8, like octagon.)。

ベース16、または文字で数える

10桁しかない場合は、0から10まで、どのように16までカウントしますか? シンプルな、私たちは手紙を使用します。 したがって、16進数は「カウント」します。

0… 1… 2… 3… 4… 5… 6… 7… 8… 9… A… B… C… D… E… F… 10…

ああ、ちょっと、待って、A … D … 10? これを行うと、これはより意味をなさないかもしれません:

0… 1… 2… 3… 4… 5… 6… 7… 8… 9…
A (10)… B (11)… C (12)… D (13)… E (14)… F (15)…
10 (16)… 11 (17)… 12 (18)… 13 (19)… … …

私たちはどのようにカウントアップしているのか分かりますか?A、B、C、D、E、Fの文字を数字のように使用しているだけですか? この場合、バイナリで2の累乗と同じように、場所の値は16の累乗になります。これは実際に ‘十位の場所’を実際に’16の場所 ‘にし、’百の場所 ‘を実際には「256の場所」にします。

hex_placement

たとえば、16進数A2は、(10 * 16)+(2 * 1)= 162となります。

ベース8、またはカウント…数が少ない

8進数では、0〜7の数字だけを使用します。なぜですか? さて、8進数は最大10まで、2進数は2まで、16進数は16までのように、8進数だけがカウントされます。したがって、8桁の数字(0〜7)を使用するとどうなりますか? そのようです:

0… 1… 2… 3… 4… 5… 6… 7… 10… 11… 12… 13…
14… 15… 16… 17… 20… 21… … …

小数点とは異なり、次の桁値は8カウントごとにインクリメントされます。 したがって、10進数で10の累乗、2進数で2の累乗、16進数で16の累乗のように、8進数は8の累乗で動作します。

oct_placement

たとえば、8進数75は(7 * 8)+(5 * 1)= 61となります。

だから、なぜあなたはこれをやりますか?

さて、これはむしろ難解で不明瞭なように思えます。 便利、驚くほど十分に。 バイナリを覚えていますか? バイナリが8ビット(1または0)の長さのバイトで格納されているとはどういうことを覚えていますか? まあ、16進数の1桁は、どの配置値に関係なく常に4ビットにマップされます。

hex_demo

驚くべきことではないですか? 私は初めてそれを見たときにそれが素晴らしいと思った。 ある場所の1桁または1桁の文字が、いつか私の頭の中で実際にそれを働かせるまで、同じ場所にあるバイナリを常に「表現」できるとは信じられませんでした。 しかし、そこにある!

本当にこのプロセスは、マッチング境界(ベース4と2つのバイナリディジットなど)を持つ任意の2つの数値ベースに当てはまりますが、私たちの記事では、次に8進数を示します。 その場所の各8進数は、(実際には必ずしもそうではないが)3つの2進数字を表すことができる:

oct_demo

より簡単にデータを表現

情報の測定について私たちがどのように話したか覚えていますか? バイトはバイナリデータの8ビット(1または0)です。 したがって、データを16進形式で書き出すと、8つの1と0を2つの数字/文字に書き込むことを減らすことができます。 したがって、バイトは9E、F1、12のようになります。これは、8個以上の1と0を表示するよりも、表示して対処するのが手軽で親しみやすいことがわかります。

しかし、8進数はどうですか? 8進数は16進数のように8,16,32などのサイズのデータチャンクには適合しません。 PDP-8やIBMのメインフレームのようなシステムでは、12ビット、24ビット、36ビットのデータを使用するシステムでは、以前は8進数が使用されていました(そのうちの1つが使用されます) 言葉。 これらの制約とその上の8角形は、通常の電卓のような表示(数字のみを使用)で表示することができます。

16進法と8進法

最近の16進数の1つは、ウェブサイトで見つかった色を指定することです。これは、バイナリに関する記事のバイナリ使用例の拡張です。ウェブサイトのコードでは、(X)HTMLまたはCSSのいずれかで、表示される色(特にテキストや枠線、グラフィックスプログラムは同じシステムを使用することが多い)は6桁の16進数で表されます。 2桁ごとに原色を表します(コンピュータの地では赤、緑、青です)。それらは次のように書かれます:#XXXXXX、各Xは0〜Fの数字です; XXを00(0)からFF(255)にする。数値が高いほど、原色の強度が大きくなります。色の順序は#FFFFFFのようになります。ランダムな色の例:#520712白は#FFFFFF、黒は#000000です。

現代の8進法は、UNIXのような環境(UNIXはオペレーティングシステムの分類)でファイルとフォルダのパーミッションを指定することです。これらのオペレーティングシステムには、所有者、グループ、および全員の3つのレベルの権限があります。各レベルには、read(r)、write(w)、およびexecute(x)の3つの「フラグ」または情報ビットがあります。これは、所有者 – [rwx]グループ – [rwx] everyone – [rwx] – > rwxrwxrwxという9ビットの情報を提供します。各 ‘フラグ’またはビットは、読み取り可能または不可能、書き込み可能かどうか、実行可能かどうかなどの真または偽のいずれかです。 9は3の倍数であり、3ビットごとに8進数で表すことができますか?右。

ですから、私たちの許可は101001011かr-x-x-wxのようにする必要はありません。 ああ、彼らはこのように見える:513。

oct_permissions

キャスティング・スペルとレーシングカー

あなたがプログラミングしているときには、数字( ‘リテラル’)を書くだけで書くことができます(ほとんどの場合、16進数と8進数を表現できる方法が必要です。 他の10進数と違って見えるものがないので、まっすぐな数字を書いてください。その特定の数字に文字がない場合は、実際には16進数で同じものです。

16進数を表現する方法はたくさんありますが、それらをすべて実演した記事を書きました(Wikipediaに基づいています)。 しかし、通常は8進法で表現される方法がいくつかあります。

8進数は、通常、さまざまなプログラミング言語で表現されるいくつかの方法があります。 特定の言語については、その仕様を参照する必要があります。 いくつかの言語では、番号の前に0(ゼロ)を付けるか、文字o(oh)またはqと数字文字の組み合わせ0o(zero-oh)を入力するだけです。 8進文字を「エスケープ」できる特定のコンテキストがあります。 ‘Escaping’はこの記事の範囲外ですが、あなたは\ 001(8進数で1)のようなものを書いてください。

その後!

それはすべて16進数と8進数です。 ご覧のとおり、うまくいけば、それほど複雑ではなく、バイナリのようなものです。 テキストエディタでデータファイルを編集しているときに、各バイトの16進数値も表示されたときに、16進数と8進数が導入されました。 それは非常に便利なプログラムでした。

まあ、それは今のところそれです!

あなたが私の執筆を感謝するなら、私のパトロンを通して私を支えてください。( パトロン )

photo credit: 40h. via photopin (license)

Liked it? Take a second to support kadar on Patreon!

あわせて読みたい

コメントを残す

%d人のブロガーが「いいね」をつけました。