Menu
Coddy logo textTech

ビットとは?

ビット(bit、binary digitの略)とは、コンピュータで扱うデータの最小単位で、0か1のどちらか1つの値を持ちます。コンピュータは数値や文字から画像、プログラムまで、あらゆる情報をビットの並びとして保存し、処理しています。

執筆: Kevin Spektor, 共同創業者、CTO

更新日: 2026年9月24日

4
2
1
値5
表せる値の数2^3 = 8
範囲0 … 7

ビットを1つ足すごとに、表せる値の数は2倍になります。8ビットで1バイト、256通りの値(0から255)です。

電灯のスイッチはオフかオンのどちらかです。ビットは同じ考え方を数字で書いたもので、0か1のどちらかです。1ビットで答えられるのは「はい」か「いいえ」の質問1つだけですが、ビットを並べると、1ビット増えるごとに作れるパターンの数が2倍になります。8ビットあればキーボードのどの文字でも表せますし、何十億ビットもあれば映画1本が収まります。

ビットはどのように保存されるのか

ハードウェアが確実に設定して読み戻せる2つの状態を持つものなら、何でもビットになります。装置によって使う物理的な現象は異なります。

  • プロセッサ: 配線やトランジスタの電圧が高いか低いか。
  • RAM: 各メモリセルにある小さなコンデンサに電荷があるか、空か。
  • ハードディスク: ディスク上の小さな領域が、どちらの向きに磁化されているか。
  • フラッシュメモリ(SSD、USBメモリ): セルに閉じ込められた電荷。最近のフラッシュメモリは、電荷のレベルを複数使い分けることで、1つのセルに3ビットか4ビットを保存します。

10個ではなく2つの状態を使うのは、信号にノイズが乗っていても2つなら簡単に区別できるからです。回路は電圧が高いか低いかを判断するだけでよく、10段階のどれに一番近いかを判断する必要はありません。

ビットで数える方法

ビットは2進数、つまり2を基数として数えます。各桁の重みは右隣の桁の2倍で、1、2、4、8、16と続きます。1101 というビットは 8 + 4 + 0 + 1、つまり13を表します。

nビットでは2ⁿ通りのパターンが作れるので、ビットを1つ足すごとに表せる範囲が2倍になります。

 1 bits -> 2 values
 2 bits -> 4 values
 4 bits -> 16 values
 8 bits -> 256 values
16 bits -> 65,536 values
32 bits -> 4,294,967,296 values
64 bits -> 18,446,744,073,709,551,616 values

これらの数はあちこちに現れます。8ビットで保存される色のチャンネルには256段階の濃さがあり、RGBの値が0から255までなのはこのためです。IPv4アドレスは32ビットなので約43億個しかなく、IPv6はそれを理由に128ビットになりました。符号付き32ビット整数の最大値は2,147,483,647で、Javaでこれに1を足すと -2,147,483,648 に戻ってしまいます。

Pythonでは bin() と int() で数値とそのビットを相互に変換できます。進数変換ツールを使えば、ブラウザ上で同じことができます。

0b1101
13
4 bits needed
0b100
0b111
0b1001
0b1100

個々のビットを操作する

上の例の後半にある演算子はビット演算子です。これらはビットの桁ごとに別々に働きます。&(AND)は両方の数でそのビットが立っている桁だけを残し、|(OR)はどちらかで立っている桁を残し、^(XOR)はちょうど片方だけで立っている桁を残します。<< と >> はすべてのビットを左または右にずらします。C、Java、JavaScript、Pythonはどれも同じ記号を使います。

プログラムはこれらを使って、「はい」か「いいえ」の設定をいくつも1つの数にまとめます。設定1つにつき1ビットです。Unixのファイルのパーミッションはこの仕組みで動いています。読み取り、書き込み、実行が3つのビットなので、7(2進数で 111)は3つすべてを、5(2進数で 101)は読み取りと実行を意味します。chmod 755 が設定しているのはこれです。それぞれの設定はブール値であり、ブール値に必要なのは1ビットだけです。

文字の中のビット

文字は数値として保存され、数値はビットとして保存されます。各文字にはコードがあり、そのコードが2進数で書かれています。

H 72 01001000
i 105 01101001
! 33 00100001

ここでは各文字が8ビット、つまり1バイトを使っています。ASCIIに必要なのは1文字あたり7ビットだけですが、コンピュータはそれをバイト単位で保存します。テキスト2進数変換ツールを使うと、入力した任意のテキストのビットを確認できます。

身近な数字の中のビット

よく目にする数字のうち2つは、ビット単位で数えられています。インターネットの速度はビット毎秒で測られます。100 Mbpsの回線は毎秒1億ビットを送りますが、ファイルのサイズは8ビットからなるバイトで測るので、これは毎秒12.5メガバイトになります。Mbpsの小文字のbはビットを、MBの大文字のBはバイトを意味します。2つの単位の詳しい比較はバイトのページにあります。

もう1つは、プロセッサやオペレーティングシステムに付いている「64ビット」という表記です。これはプロセッサが1回の処理で扱う数値とメモリアドレスの大きさです。

ビットはエラーの検出にも使われます。パリティビットは、1の個数が常に偶数になるようにデータのまとまりに追加する1ビットです。途中でビットが1つ反転すると、1の個数が奇数になり、受け取った側はデータが壊れていると分かります。チェックサムは、同じ考え方をファイル全体に広げたものです。

言葉の由来

「ビット」は binary digit(2進数の桁)の略です。クロード・シャノンが1948年の論文「A Mathematical Theory of Communication(通信の数学的理論)」でこの言葉を使い、ジョン・テューキーが考案した言葉だと記しています。シャノンの情報理論では、1ビットは量の単位でもあります。公平なコイン投げのように、2つの結果が同じ確率で起こる質問の答えに含まれる情報量のことです。

次に読むページ

ビットはほとんどの場合8個ずつまとめて扱われるので、次はバイトとは何かを読んでください。ビットとバイトの比較も載っています。ブール値とは何かでは、真か偽かという1ビットの意味がプログラムの判断をどう動かしているかを、チェックサムとは何かでは、ビットが壊れたデータをどう検出するかを説明しています。

よくある質問

コンピュータのビットとは何ですか?
コンピュータのビットは1つの0または1で、回路の電圧の高低や、メモリセルに電荷があるかないかといった、2つの物理的な状態のどちらかとして保存されます。数値、文字、画像、プログラムなど、コンピュータが持っているものはすべてビットでできています。8ビットをまとめたものが1バイトです。
なぜ「ビット」と呼ばれるのですか?
ビット(bit)は binary digit(2進数の桁)を縮めた言葉です。この言葉は統計学者のジョン・テューキーが考案したとされ、情報理論を創始したクロード・シャノンの1948年の論文「A Mathematical Theory of Communication(通信の数学的理論)」で初めて活字になりました。
お金の単位としての「bit」とは?
昔のアメリカの用法では、bitは1ドルの8分の1、つまり12.5セントを指し、「two bits」は25セント硬貨を意味します。この言葉は、8つに切り分けて使えたスペインの銀貨に由来します。2進数の桁であるコンピュータのビットとは関係ありません。
32ビットや64ビットとはどういう意味ですか?
プロセッサが1回の処理で扱い、メモリのアドレスに使うビット数を表しています。32ビットのアドレスが指せるのは2^32バイト、つまり4 GiBなので、32ビットのシステムはそれ以上のメモリを直接使えません。現在のパソコンやスマートフォンのプロセッサは64ビットで、この上限は搭載されているどんなメモリよりもはるかに大きくなっています。
ビットと量子ビット(キュービット)の違いは?
ビットは常にちょうど0か1のどちらかです。量子コンピュータの単位である量子ビット(qubit)は、測定されるまで0と1の重ね合わせの状態をとることができ、測定すると一定の確率で0か1になります。量子ビットは特定の量子アルゴリズムに使われるもので、通常のコンピュータのビットを置き換えるものではありません。
Coddy programming languages illustration

Coddyでコードを学ぼう

始める