ビットと2進数
8個のスイッチは256通りの並びを表せます。0から255までのすべての数に足りる数です。
何かを読む前に、下のスイッチを試してみましょう。「すべてオフ」を押します。次に、いちばん右のスイッチだけをオンにして、列の下の行を読みます。1です。それをオフにして、そのすぐ左のスイッチをオンにすると2。その次は4、さらにその次は8です。左へ進み続けましょう。反対の端に着くころには、1バイトのスイッチが持つ値をすべて見たことになり、最後のスイッチは128にあたります。
ドラッグで回転、スクロールまたはピンチで拡大・縮小。
どのスイッチも、右どなりの2倍の値
いま見たものが2進数の考え方のすべてです。10進数では、どの位も右どなりの位の10倍の値をもちます。一の位、十の位、百の位です。2進数ではどの位も2倍なので、値は1、2、4、8、16、32、64、128と続きます。並びを読むには、オンになっているスイッチの値を足します。00100101は32と4と1のスイッチがオンなので、32 + 4 + 1 = 37です。その3つだけをオンにすると、合計の行も同じ値になるはずです。ここからもう一つの決まりが自然にわかります。奇数の値をもつのはいちばん右のスイッチだけです。だから、ある数が偶数になるのは、最後のビットが0のときであり、そのときに限ります。
チップが10ではなく2つの状態を使う理由
画面のスイッチは本物のスイッチの代わりです。コンピューターのチップにはトランジスタと呼ばれる小さな電子スイッチが何十億個もあり、どの瞬間にもそれぞれが電流を通すか止めるかのどちらかです。技術者はこの2つの状態を1と0と書きます。その1つ1つがビットで、binary digit(2進数の桁)を縮めた言葉です。キーで打った文字も、再生する曲も、最後には長いビットの列になります。
なぜ10進数の数字1つずつに合わせて、10の状態にしないのでしょうか。チップの中の配線の電圧は決して正確ではありません。熱や近くの配線、トランジスタどうしの小さなちがいによって、いつも少しずつ上下しています。高いか低いかだけを見分ければよい回路なら、そのほとんどを気にせずにすみます。真ん中の線より上はすべて1、下はすべて0とみなせばよいからです。同じ幅に10段階を詰めこむと、段階どうしがとても近くなり、少しの雑音で隣の段階と読みちがえてしまうおそれがあります。2つの状態はスイッチにも向いています。完全にオンか完全にオフかのどちらかで、その中間の微妙な位置を保つ必要がありません。
スイッチで100を表す
反対向き、つまり数からビットに直すのは、入るなかでいちばん大きい硬貨から払っていくのと似ています。100で考えましょう。128は大きすぎます。64は入り、残りは36。32も入り、残りは4。16と8はどちらも4には大きすぎます。4が入り、残りは0。だから64、32、4のスイッチがオンで、1100100、1バイトで書くと01100100です。シーンで目標に100を選んで確かめましょう。別の方法を好む人もいます。2でくり返し割って、そのたびに余りを書き、最後に余りを下から上へ読みます。どちらの方法でも同じビットになります。
スイッチが1つ増えると並びは2倍
8個のスイッチでは何通りの数を作れるでしょうか。ビットが1つ増えるたびに、数は2倍になります。1ビットなら2通り。2ビットなら4通りで、00、01、10、11です。3ビットなら8通り、nビットなら2のn乗通りです。1バイト、つまり8ビットなら256通りなので、1バイトは0から255まで数えられます。IPv4アドレスの4つの数がどれも255で止まるのもこのためです。1000個のものにそれぞれ番号をつけたいときは? 9ビットでは512通りしかありません。10ビット必要で、それで1024通りになります。
0から始めて「+1」を何回か押し、スイッチを見てみましょう。各輪に数字が2つしかない車の走行距離計のように見えます。0、次に1、そして1の位が一周して2の位へ繰り上がり、10になります。次は11。その次は両方が同時に一周して100です。すべてのスイッチがオンになると11111111、つまり255です。255 + 1の本当の答えは256で、9番目のビットが必要です。100000000です。シーンは8ビットしか持たないので、255に+1すると0と表示されます。これがオーバーフローです。加算器の単元でまた出てきます。
| ビット | 2進数の1桁。0か1 |
| バイト | 8ビット、256通り |
| 位の値 | 1, 2, 4, 8, 16, 32, 64, 128 |
| nビット | 2ⁿ通り |
| 11111111 | 255 |
| オーバーフロー | 入れておくビット数に対して大きすぎる結果 |
- 「10は十という意味だ」 それは10進数の場合だけです。2進数の10は、2が1つで1はないので、二を意味します。どちらにも読める数のときは、10₂のように後ろに小さな2を書いて、どの記数法かを示しましょう。
- 「1が多いほど大きい数だ」 数よりも位置のほうが大切です。01111111は1が7つで127です。10000000は1が1つだけで128です。いちばん左のスイッチ1つだけで、その右の7つのスイッチ全部より重いのです。128 = 127 + 1だからです。
- 「1バイトには256までの数が入る」 1バイトには256通りの並びがありますが、そのうちの1つ、00000000はゼロに使われます。だから最大は255です。4ビットでも同じで、16通り、最大は15です。
- 1011は10進数でいくつですか?
- 37を2進数で書きましょう(先頭の0はつけない)。
- 1100100は10進数でいくつですか?
- 8ビットでは何通りの並びを表せますか?
- 1バイトに入る最大の数はいくつですか?
- 4ビットでは何通りの並びになりますか?
- 1000個のものにちがう番号をつけるには、何ビット必要ですか?
- 2進数で数えるとき、0111の次は何ですか? 4桁で答えましょう。
- 次の数のうち、奇数はどれですか?
- 10011
- 10010
- 11110
- 100
- 255 + 1 = 256には何ビット必要ですか?
- ビットは0か1。バイトは8ビット。
- 2進数の位の値は2倍ずつ:1、2、4、8、16、32、64、128。
- nビットで2ⁿ通り。1バイトは0から255まで。
- すべて1の数に1を足すと一周して、ビットが1つ多く必要になる。
このコースの出典 (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
確認日: 2026-10-17