Math World Lab

位取り記数法(2進数・10進数)

0と1だけの世界で、数はどう表される?

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
位取り記数法(2進数・10進数)の本質的な定義と直感的ビジュアルをシミュレーターで体験できる。
2
公式や証明の背景にある数学的意味と、厳密な導出ステップを解説。
3
実社会における工学応用(コンピュータ内部の整数表現とビット演算)のTypeScript実装コードを収録。

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

人間は指が10本あったため10進数を使ったが、電子回路は「電気がONかOFFか(1か0か)」の2値しか扱えない物理的制約から2進数が生まれた。

身につく武器・思考力

コンピュータがデータをどのように文字・画像・数値として内部保持しているかの仕組み(ビットとバイト)が腑に落ちるようになる。

実社会・ITでの活躍現場

  • •すべてのコンピュータ・スマートフォン・CPUの基本動作(バイナリ演算)
  • •Web開発におけるカラーコード表現(#FF5733 などの16進数表記)
  • •ネットワークのIPアドレスやサブネットマスク(IPv4 / IPv6)
  • •高速なフラグ管理や権限設定(Linuxパーミッション chmod 755 など)

Layer 1 — 直感・シミュレーター

上のビットのスイッチをオン・オフして2進数を作ってみよう。下の10進数の入力を変えると、対応する2進数が自動で計算される。両方を見比べて、位ごとの重みがどう積み上がるかを確かめよう。

8ビット スイッチ(クリックして 0 と 1 を切り替え)
2進数 (Binary)
00010101(2)
10進数 (Decimal)
21(10)
16進数 (Hexadecimal)
0x15(16)
重み付けの展開式:
0 × 2^7 + 0 × 2^6 + 0 × 2^5 + 1 × 2^4 + 0 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 = 21

10進数は「10集まると繰り上がる」のに対し、2進数は「2集まると繰り上がる」位取りの仕組みです。コンピュータのすべてのデータや画像、文字はこの0と1の組み合わせで表現されています。

Layer 2 — 定義・受験・証明

定義

わたしたちがふだん使う10進法は、位が1つ上がるごとに value が10倍になる「位取り記数法」である。同じしくみで、位が1つ上がるごとに値が2倍になる数え方を「2進法(2進数)」という。2進数では、使う数字は 00 と 11 の2種類だけである。

公式・数理モデル

N=∑i=0nbi×2iN = \sum_{i=0}^{n} b_i \times 2^i

証明・導出

10進数の 257257 は、2×100+5×10+7×12 \times 100 + 5 \times 10 + 7 \times 1、つまり各位の数字に 102,101,10010^2, 10^1, 10^0 の重みをかけて足し合わせたものである。

2進数も同じ考え方で、各位の数字(ビット)に 20,21,22,…2^0, 2^1, 2^2, \dots の重みをかけて足し合わせる。たとえば2進数 10111011 は

1×23+0×22+1×21+1×20=8+0+2+1=111 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11

となり、10進数の 1111 に等しい。逆に10進数を2進数に直すには、22 で割り続けてあまりを下から並べればよい。

押さえておきたいポイント

  • 位取り記数法では、右から ii 番目の位の重みは(10進数なら 10i10^i、2進数なら 2i2^i)である
  • 2進数は 00 と 11 の2種類の数字だけで、すべての整数を表せる
  • コンピュータの中では、電気信号のオン・オフに対応させやすいため2進数が使われている
  • 2進数1桁を「ビット(bit)」、8ビットをまとめたものを「バイト(byte)」という
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

コンピュータ内部の整数表現とビット演算

コンピュータのメモリは電気信号のオン・オフしか扱えないため、すべての整数は2進数(ビット列)として保存されている。ビットごとのAND・OR・シフト演算は、画像処理や暗号、権限管理のフラグなど幅広い場面で使われる基本操作である。

1// 10進数 -> 2進数の文字列に変換
2function toBinary(n: number): string {
3 return n.toString(2);
4}
5
6// 2進数の文字列 -> 10進数に変換
7function toDecimal(bin: string): number {
8 return parseInt(bin, 2);
9}
10
11// ビット演算の例:フラグの管理
12const READ = 0b0001; // 1
13const WRITE = 0b0010; // 2
14const EXEC = 0b0100; // 4
15
16let permissions = READ | WRITE; // OR演算でフラグを立てる -> 0b0011 (3)
17console.log(toBinary(permissions)); // "11"
18console.log((permissions & WRITE) !== 0); // true: WRITE権限を持つか判定
19console.log(toDecimal("1011")); // 11

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

+162⁴+82³+42²+22¹+12⁰2進数による一意分解定理
関連度高数の不思議・パズル

2進数マジック(年齢当てカードの秘密)

「この中にあなたの数字はある?」5つの質問で心を読み当てる数理手品

関連度高小学校・算数

分数の割り算(なぜひっくり返して掛けるのか)

÷ab\div \frac{a}{b} が ×ba\times \frac{b}{a} になる理由を、図で確かめよう

関連度高小学校・算数

比例と反比例

y=kxy = kx と y=kxy = \frac{k}{x}、グラフと表はどう違う?

同じレベルで次に挑戦したいトピック

同レベル推薦小学校・算数

円の面積と円周率

半径を変えると、円周と面積はどう変わる?

同レベル推薦小学校・算数

最小公倍数・最大公約数

数直線に並ぶ倍数と、ユークリッドの互除法で公約数を探る

同レベル推薦小学校・算数

三角形・多角形の面積

頂点を動かして、面積の公式が成り立つ理由を確かめよう

工学・実社会での応用先でつながるトピック

工学・実践連携工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

工学・実践連携工学応用

ニューラルネットワークの数学(順伝播と活性化関数)

入力に重みを掛けて足し合わせ、非線形関数で発火させるAIの基本素子

工学・実践連携工学応用

レコメンドの仕組み(コサイン類似度とベクトル検索)

ユーザーの好みと商品の近さを「ベクトルのなす角」で判定するアルゴリズム

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。