2進数の復習!(Cの番外編その1)

どもー、たなかです

前回、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なら10 4なら100)
よく、スイッチのオンオフで表される(1がオンで0がオフ)

計算方法
10進数 → 2進数

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の記事でも書くか
悩み中です…

とりあえず!
次回は、データ型と変数についてかな?って感じです!

以上です!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です