どもー、たなかです
前回、Cの復習を行いましたが
今回は、Cの復習を行う前提として
2進数・8進数・16進数について復習したいと思います!
(次回のための復習です)
皆さんは、普段どうやって計算していますか?
「リンゴが4個とみかんが6個あります。かけると?」
「かけられない」
まあ、おふざけは置いといて
普通なら「24」
これは、10進数と言われ
「0・1・2・3・4・5・6・7・8・9」
上記の数字10個を用いて数値を表す方法 → 10進数(10進法)
では、2進数・8進数・16進数はどう表すのでしょうか?
問題の答えを各進数で表すと
2進数 → 「11000」
8進数 → 「30」
16進数 → 「18」
どうやってやった?
今回は、2進数について解説していきます
2進数←高校で習うはず(情メなら1年後期の情報数学の最初でやる?)
「0・1」を用いて数値を表す方法
2の階乗で(2²とかのこと)桁が一つ上がる(2なら10 4なら100)
よく、スイッチのオン・オフで表される(1がオンで0がオフ)
2進数 → 10進数
10進数から2進数はどのようにやってるか?
原理はこのようになっています!
とまあ、こんな感じです!
これさえ理解できれば、8進数や16進数も基本は同じなので理解できると思います!
ここからは、パソコン関連と絡めてのお話
皆さん、ビット(bit)ってご存知ですよね?
知らないと言う方もバイト(Byte)なら聞いたことがあるでしょう
iPhoneの64GB(Giga Byte)などデータを記憶する記憶装置の単位のこと
1ビットで2進数の一桁のデータ量があります!
先ほどの24という数字なら5bitのデータ量があるということになります
1Byteは8bitのかたまりです
ですから情報数学などでは2進数を8桁で表すことが多いです
24=00011000
といった感じですかね
これに一体何の意味があるのか?
これで、マイナスが表現できるようになります!
通常、2進数にはプラスとマイナスを表現する記号がありません!(全てプラスということになっている)
では、どうするのか?
8桁目を0をプラスとし、1をマイナスとすれば表現できる!
-24=10011000でいい?
実際は違います!
補数表現というものを利用します
補数表現には「1の補数」と「2の補数」があり
1の補数
まあ、元の数と1の補数を足すと全てが1で表されるものです
2の補数
1の補数の1桁目に1を足すものです
11100111← 1の補数
11101000←2の補数
これをなぜ利用するのか?
足し引きがやりやすくなるから!
今回は、申し訳ないですが足し引きや8進数16進数は内容は省略します
いかがでしたでしょうか?
次回は、もう一回同じような感じのを出すかCの記事でも書くか
悩み中です…
とりあえず!
次回は、データ型と変数についてかな?って感じです!
以上です!