2進数のソースを表示
←
2進数
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
<math>1001(9)</math>のような記法がされる時、カッコ内は10進数で表記した際の数字です。 '''2進数'''は'''その桁の値が2になると桁が上がる表記法'''です。すなわち、2進数での数は'''0'''と'''1'''のみで表記されます。以下に10進数(私たちが通常用いる数字の表記法)を2進数で表す例を示します。 {| class="wikitable" |- ! 10進数 !! 2進数 |- | 0 || 0 |- | 1 || 1 |- | '''2''' || '''10''' |- | 3 || 11 |- | '''4''' || '''100''' |- | 10 || 1010 |- | 100 || 1100100 |- | '''0.5''' || '''0.1''' |- | '''0.25''' || '''0.01''' |- | 0.75 || 0.11 |} 列記してみてわかるように、2進数の各桁は'''2の冪数'''(<math>2^n</math>)になっていることがわかります。例えば一桁目は<math>2^0 = 1</math>, 二桁目は<math>2^1 = 2</math>, 小数点以下に関しても一桁目が<math>2^{-1} = \frac{1}{2} = 0.5</math>, 二桁目が<math>2^{-2} = \frac{1}{4} = 0.25</math>となっています。 == 四則演算 == === 和算・減算 === 2進数の足し算と引き算に関しては'''10進数のそれと同じような要領でできます'''。 {| border="0" cellspacing="0" cellpadding="0" style="background:#eeffee; border:solid 2px #cccccc; float:right;" |- align="center" |align="right"| | | |1 |0 |1 | |- align="center" | |align="right" style="text-decoration:underline;"|- |style="text-decoration:underline;"| |style="text-decoration:underline;"| 0 |style="text-decoration:underline;"| 1 |style="text-decoration:underline;"| 1 | |- align="center" | | | |0 |1 |0 | | |} {| border="0" cellspacing="0" cellpadding="0" style="background:#eeffee; border:solid 2px #cccccc; float:right;" |- align="center" |align="right"| | | |0 |1 |0 | |- align="center" | |align="right" style="text-decoration:underline;"|+ |style="text-decoration:underline;"| |style="text-decoration:underline;"| 0 |style="text-decoration:underline;"| 1 |style="text-decoration:underline;"| 1 | |- align="center" | | | |1 |0 |1 | | |} 左の計算では、一桁目は<math>0 + 1 = 1</math>, 二桁目は<math>1 + 1 = 10</math>, 三桁目は二桁目から繰り上がった<math>1</math>が入っています。右の計算では、一桁目は<math>1 - 1 = 0</math>, 二桁目は三桁目から繰り下がりして<math>10 - 1 = 1</math>, 三桁目は二桁目で繰り下がったため<math>0 </math>が入っています。 === 積算・除算 === 2進数のかけ算とわり算に関して、10進数のそれとはあまり応用が効きません。理由として通常計算をする際には、各自暗記した[[小学校算数/2学年#九九|九九]]を転用して行うこととなりますが、2進数のそれは別のものとなるためです。<ref>実際には、2進数でかけ算の筆算をしてみると10進数と同じ感覚でできます。しかし、ある意味偶然の残物というべきものであり、事実[[16進数]]などでは使えません。小技として使えることは頭に入れてもいいと思いますが、正統な方法を覚えることに損はないと考えます。</ref>そのため、'''[[基数変換]]'''によって2進数を10進数に変換するか、後述の'''シフト演算'''という手法を用いることになります。 ==== シフト演算 ==== 2進数の各桁は10進数で見たときに2の冪数となっていることは前述したとおりです。つまり、'''現在の数字に2をかけると左に一つ桁がズレ、2で割ると右に一つ桁がズレます'''。 : <math>00101(5)</math> : <math>01010(10)</math> : <math>0010.1(2.5)</math> 上の例ではカッコ内に10進数で表記した際の数字を記述していますが、確かに数字そのままに桁を一つズラすと各2でかけ算わり算をしたときの結果になっていることがわかると思います。 シフト演算では、この桁のズレを利用して計算を行います。上記の桁のズラしを1回行うと、2でのかけ算(わり算)が行われます。つまり、'''左(右)に桁をn回ズラすと、現在の数字に<math>2^n</math>でかけ算(わり算)を行う'''という処理になることがわかると思います。以下に例を示します。カッコ内は10進数で表記した際の数字です。 : <math>01010(10) \times 10(2) = 10100(20)</math> : <math>01010(10) \times 100(4) = 101000(40)</math> : <math>101000(40) \div 10(2) = 010100(20)</math> : <math>101000(40) \div 100(4) = 001010(10)</math> しかし、このやり方のみでは<math>2^n</math>での積除算しかできません。そのため、'''<math>2^n</math>以外でかけ算わり算をするときには足し算引き算も使用します'''。以下に例を示します。 : <math>11(3) \times 1001(9) = 11(3) \times 1000(8) + 11(3) \times 1(1) = 11000(24) + 11(3) = 11011(27)</math> == 注釈 == {{DEFAULTSORT:02しんすう}} [[Category:情報処理技術者試験]][[Category:計算機科学]][[Category:数学]]
2進数
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報