スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
質問等はお気軽に掲示板「中華タブレット 教えて!少女隊」へどうぞ
ユーザー同士のコミュニケーションに「MOMO9 N70双撃 SNS」もどうぞ
カテゴリー: スポンサー広告

カスタム化の勉強 予備知識 10進数、2進数、16進数

今回は、カスタム化で知ってた方が良い予備知識、2進数、16進数についてのお話です。
知ってる人には、当たり前過ぎる話なのでスルーして下さいね。

n進数

皆さんが普段使われているのは10進数です。
今回は、10進数の他、2進数、16進数についてのお話です。

10 進数(decimal)について

皆さん10進数はご存知ですよね。
0,1,2,3,4,5,6,7,8,9
10個の数値記号を利用して、数値を表現します。
0(なし)の状態から1ずつ数えていって、最高の9まで数えたら、 次の位に繰り上がって10
1の位は0に戻ります。
この10個の記号と繰り上がりの仕組みを利用すれば、この先の数はいくつでも数えて行けるわけです。

10進数以外の考え方

例えば、時間を考えた場合、秒や分は、60単位で繰り上がり、時間は24単位で繰り上がります。必ずしも10で繰り上がる必要はないわけですね。

10進数が出来た理由

おそらく、人間の指が10本あったからだと思われます。
もし指が8本しかなかったら8つの記号を使った8進数になったのではないでしょうか?

2 進数(binary digit)について

コンピューターの世界は、電気信号のオン(1)、オフ(0)で表現されます。
電気信号で数値を表現するのには、オン、オフだけで表現出来るのが都合が良かったからですね。

オフ(0)とオン(1)の2つの状態しかないので、2進数となります。
2進数とは、2つの記号を用いて数を表現する方法です。
記号が2つなので、元々ある記号0,1がそのまま使われています。
また、この0か1を記憶する単位をビットと言います。

10進数の時と同じように数えてみましょう。
0(なし)の状態から1ずつ数えていって、最高の1まで数えたら、 次の位に繰り上がって10(2) (←(2)は2進数の意味)
1の位は0に戻ります。
2進数は2つしか記号がないので、すぐに繰り上がりますね。
並べてみますね。

10進数 2進数
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111
1610000

気が付かれましたか?2のべき乗で2進数が繰り上がっていることを。
2(2^1)、4(2^2)、8(2^3)、16(2^4)で繰り上がりが発生しています。
(^はべき乗の演算記号です)

2進数から10進数への変換

1101(2)を10進数に変換するには、こんな風に右桁から桁の重み(2のべき乗)を考えて計算します。
桁の重みと言っても簡単ですよ。右から1,2,4,8と割り当てるだけです。
1 1 0 1(2)
8 4 2 1

これで、2進数の1の部分だけ重みを付けた数を足してあげれば10進数になります。
1101(2)
↓↓ ↓
84
8+4+1=13
上の表と合ってますよね。

10進数から2進数への変換

逆の考え方をします。
例えば、14を2進数に直す場合、14より小さい、一番大きな2のべき乗を考えます。
重みを並べておくと簡単ですね。
1024 512 256 128 64 32 16 8 4 2 1
14より小さく、一番大きな2のべき乗は8です。
この数を14から引きます。 14 - 8 = 6
次は残った6より小さく、一番大きな2のべき乗を考えます。4ですね。
以降繰り返します。
6 - 4 = 2
2 - 2 = 0

重みである8,4,2を利用しているので、2進数に直すと
1110(2)になります。分かりづらいかな?
↑↑↑
8421(重み)

ビットとバイト

次の16進数の話に進む前に、ビット(bit)とバイト(byte)について、話します。
ビットとは、前に書いたとおり1,0を記憶する単位です。
バイトとは、2進数8桁を1つの単位としたものです。
1バイトは、00000000(2)~11111111(2)の値を表現するものです。
桁が多いのですごく大きく見えますけど、10進数の正数表現で0~255ですね

コンピューターでの記憶領域の単位は、通常バイト(=8ビット)が利用されています。
皆さんが慣れ親しんでいるバイトという単位は、こういうものだったのです。

余談になりますけど、K(キロ)、M(メガ)、T(テラ)なども10進数では
1K=1000、1M=1000K、1T=1000Mとなるわけですけど、コンピューターでの表現だと、
1Kバイト=1024バイト、1Mバイト=1024Kバイト、1Tバイト=1024Mバイトと10進数とは、ちょっと異なる数になってます
よくPCで、中途半端な数字が出てくるのはこのためです。

16進数(hexadecimal)について

コンピューターの世界では2進数が都合が良いと書きましたけど、人間がその数を見るには桁が多すぎて不便です。
それを見やすくするために0000~1111の4ビットをひとまとめにして表現することにしました。

0000~1111だと、16パターンあります。
これに記号を割り当てて、16進数としました。

さて、10進数が0~9の10個の記号、2進数が0~1の2個の記号で表現しています。
16進数を表現するには、16個の記号が必要となります。
0~9までは良いとして、残り足りない記号はアルファベットが利用されました。
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
この16個の記号で16進数は表現されます。

10進数 2進数 16進数
000
111
2102
3113
41004
51015
61106
71117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

1バイトの16進数表現

1バイトは8ビット、00000000~11111111です。 これを16進数に置き換えた場合、4ビットずつ区切って00h~FFhになります。
後ろに付いているhは、16進数(hexadecimal)のhです。
16進数を表すのには、hを後ろにつけて表現します。

2進数と16進数の相互変換

これは、表の16個のパターンを覚えるのが一番早いです。
11011001(2)の場合、1101 1001に分けて考えて、D9hです。
桁が4桁単位に分けれない場合には、0を補って考えます。
例えば、1101000001(2)の場合、右から4桁ずつ区切って
11 0100 0001となるので、
0011 0100 0001とします。
16進数に直すと、341hですね。

16進数から2進数に直すのも表で考えます。
2Fhなら、0010 1111(2)です。

16進数から10進数への変換

2Fhを10進数に変換するには、2進数の時に考えた重みで計算します。
但し、重みが16のべき乗なので単位が大きいですよ。
20A3hの場合
4096(16^3) 256(16^2) 16(16^1) 1(16^0)が重みです。
2×4096 + 0×256 + A(=10)×16 + 3×1 = 8355

10進数から16進数への変換

8355を16進数に直してみます。
とにかく16で割り続けます
8355 / 16 = 522 余り 3
522 / 16 = 32 余り 10(=A)
32 / 16 = 2 余り 0
2 / 16 = 0 余り 2
商が0まで割って、余りを逆順に並べれば16進数になります。
20A3hですね。
元の数に戻りました。

16進数表記バリエーション

16進数の表記は、後ろにhを付けて表現しますと書きましたけど、他にも表現方法があります。 2進数で書いたのと同様に(16)と後ろに付ける、あるいは頭に0xを付けるなどです。
例えば、3Fhの場合、3F(16)、0x3Fと表記されていても同じ意味です。

さいごに

思ったより書きことが多くて大変でした。
分かりづらい部分もあるかもしれませんけど、コンピューターでの数値表現が16進数でされていることを分かって頂ければ十分です。

関連記事
質問等はお気軽に掲示板「中華タブレット 教えて!少女隊」へどうぞ
ユーザー同士のコミュニケーションに「MOMO9 N70双撃 SNS」もどうぞ
カテゴリー: トピックス | タグ: 中華タブレット 豆知識 | コメント: 2 | トラックバック: 0

人気ページランキングTOP10
人気ページランキングは、上部メニューに移しました。

この記事へのコメント

No title
ども、永遠のライトユーザーもみ.です。

いい記事ですねぇ。
絶対需要ありますよ。
私もこの際、基礎の基礎から再確認させていただきます。

あみ先生、どんどんやってください。
Re:
○もみ.さん

この記事は、次の記事の予備知識で必要だったので書いたものですw

コメントの投稿

非公開コメント


サイト内検索
Twitter
プロフィール

あみ

Author:あみ
興味があるのはAndroid、アニメなどのオタク系少女です。
「MOMO9」を手に入れ、2012年5月より当サイトを作成。
中華タブレットのファームの更新やカスタム化を分かりやすく紹介したいと思います。

注意事項
※当サイトで紹介するカスタムファームでのトラブルはメーカー保証外となります。他、root化、日本語フォント化など、それが原因で生じたいかなる損害についても当サイトは一切の責任を負いません。全て自己責任の上行なって下さい。
最新コメント

openclose

最新トラックバック
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。