コンテンツにスキップ

「ビット」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Yusuke1109 bot (会話 | 投稿記録)
m →‎エンディアン: {{節stub}}を{{節スタブ}}に変更 using AWB
導入部で使われる「かばん語」は一般的ではないと思われ、かつこの記事の読者でかばん語について知りたいという動機も考えにくいため、補足的説明を付与。
(他の1人の利用者による、間の3版が非表示)
1行目: 1行目:
{{Otheruses|[[デジタル]][[コンピュータ]]が扱うデータの最小[[単位]]}}
{{Otheruses|[[デジタル]][[コンピュータ]]が扱うデータの最小[[単位]]}}
'''ビット'''(bit)は、[[情報理論]]、[[コンピューティング]]、デジタル通信における[[情報]]の基本{{仮リンク|情報の単位|en|Units of information|label=単位}}である。[[二進数]]の1桁のことであり、その名前は'''binary digit'''の2語の一部を組み合わせた後([[かばん語]])である<ref name="Mackenzie_1980"/>。
[[ファイル:2-bit resolution.png|サムネイル|ビットのイメージ]]
'''ビット''' (bit, b) は、ほとんどのデジタルコンピュータが扱うデータの最小[[単位]]。英語の binary digit (2進数字)の略であり、[[2進数]]の1けたのこと。[[量子情報]]科学においては'''古典ビット'''と呼ばれる。


情報理論では、1ビットは通常、等しい確率で0または1である二進数ランダム変数の[[情報量]](情報[[エントロピー]])<ref name="Anderson_2006"/>、またはそのような変数の値が判明したときに得られる情報として定義される<ref name="Haykin_2006"/><ref name="IEEE_260"/>。情報量の単位として、このビットは[[クロード・シャノン]]にちなんで名付けられた[[シャノン (単位)|シャノン]]とも呼ばれる<ref name="Rowlett"/>。厳密には、ビットはデータ量の単位、シャノンは情報量の単位と区別するが、歴史的経緯により両者はしばしば同じ意味で使用される。
1ビットを用いて2通りの状態を表現できる(二元符号)。これらの2状態は一般に"0"、"1"と表記される。


1ビットの情報は、二進数の1桁として[[真理値|論理値]]を表し、2つの[[値 (情報工学)|値]]のうち1つのみを持つ。2つの状態を持つ何らかの機構によって物理的に実装できる。この状態値は、最も一般的には「0」/「1」として表されるが、真/偽、yes/no、+/-、on/offなどの他の表現も可能である。この値と実際の物理的状態との対応は慣習の問題であり、同じデバイスや[[プログラム]]内でも異なる割り当てを使用することができる。
[[情報理論]]における選択情報および[[エントロピー]]の単位も「ビット」と呼んでいるが、これらの単位は「[[シャノン (単位)|シャノン]]」とも呼ばれる(詳細は[[情報量]]を参照)。


ビットの単位記号は、[[IEC 80000-13]]:2008では"bit"、{{仮リンク|IEEE 1541-2002|en|IEEE 1541-2002|preserve=1}}や{{仮リンク|IEEE Std 260.1-2004|en|IEEE Std 260.1-2004}}では"b"(小文字のビー)を推奨している。一般に8桁の二進数のグループ(8ビット)は「1[[バイト (情報)|バイト]](byte)」と呼ばれるが、歴史的にはバイトのサイズは厳密には定義されていない。
省略記法として、[[バイト (情報)|バイト]]の略記である大文字の B と区別するために、小文字の b と表記する{{要出典|date=2019年9月}}。


== 語源 ==
==歴史==
データを離散ビットによって表す方法は、{{仮リンク|バジル・ブション|en|Basile Bouchon}}と{{仮リンク|ジャン=バプティスト・ファルコン|fr|Jean-Baptiste Falcon}}によって1732年に発明され[[ジョゼフ・マリー・ジャカール]]が1804年に開発した[[パンチカード]]に使用され、後に{{仮リンク|セミオン・コルサコフ|en|Semyon Korsakov}}、[[チャールズ・バベッジ]]、[[ハーマン・ホレリス]]、および[[IBM]]などの初期のコンピュータメーカーにより採用された。また、鑽孔[[紙テープ]]も同様の考えによるものであった。これら全てのシステムで、媒体(カードやテープ)は概念的に穴の位置の配列を保持していた。それぞれの位置における穴の有無が1ビットの情報を伝達した。ビットによる文章の符号化は、[[モールス信号]](1844年)や、[[テレタイプ]]、{{仮リンク|ティッカーテープ|en|Ticker tape|label=株価表示機}}(1870年)などの初期のデジタル通信機でも使用されていた。
'''bit''' は、[[ジョン・テューキー]]が[[1947年]][[1月9日]]の[[ベル研究所]]のメモに“binary digit を縮めて bit とする”と書いているのが最初である<ref>[[:en:bit#Binary digit|英語版“bit”]]</ref><!-- ←どちらも英語版から→ -->([[1936年]]に[[ヴァネヴァー・ブッシュ]]が、[[パンチカード]]に記録するものとして "bits of information" と書いている)。


[[ラルフ・ハートレー]]は、1928年に情報の対数的計量の使用を提案した<ref name="Abramson_1963"/>。[[クロード・シャノン]]は、1948年の独創的な論文『[[通信の数学的理論]]』で「ビット」という言葉を初めて使用した<ref name="Shannon_1948_1"/><ref name="Shannon_1948_2"/><ref name="Shannon_1949"/>。シャノンは、その言葉は1947年1月9日に[[ベル研究所]]で[[ジョン・テューキー]]が書いたメモにおいて"binary information digit"(二進数情報桁)を略して"bit"と書いたことに由来するとしている<ref name="Shannon_1948_1"/>。1936年に[[ヴァネヴァー・ブッシュ]]は、当時の機械式コンピュータで使用されていたパンチカードに保存できる情報量のことを"bits of information"(情報のビット)と書いた<ref name="Bush_1936"/>。[[コンラート・ツーゼ]]によって構築された最初のプログラム可能なコンピュータは、数値に二進数表記を使用した。
ビットを情報量の単位として使ったのは、[[クロード・シャノン]]である。


==物理的表現==
== エンディアン ==
ビットは、可能な2つの別個の{{仮リンク|状態 (計算機科学)|en|State (computer science)|label=状態}}のいずれかを保持するデジタルデバイスやその他の物理システムによって格納できる。例えば[[フリップフロップ]]の2つの安定状態、[[開閉器|スイッチ]]の2つの位置、電気回路で取り得る[[電圧]]または[[電流]]の2つの異なるレベル、2つの異なる[[放射照度|光強度]]レベル、[[磁性]]または{{仮リンク|電気極性|en|electrical polarity}}の2つの方向、[[DNA]]の二本鎖の方向などである。
{{See also|エンディアン}}
{{節スタブ}}
[[バイト (情報)|バイト]]や[[ワード]]といった単位におけるビット位置の定義は[[CPU]]によって異なる。右端(数値としての最小位、[[最下位桁ビット|LSB]])を第0ビットにしている流儀と、左端(数値としての最大位、[[最上位桁ビット|MSB]])を第0ビットにしている流儀の両方がある。現在は前者が多い。


ビットはいくつかの形式で実装できる。ほとんどの最新のコンピュータデバイスでは、ビットは通常、電圧や電流のパルス、またはフリップフロップ回路の電気状態によって表される。
== 脚注 ==
{{脚注ヘルプ}}
<references/>


[[正論理]]を使用するデバイスの場合、1の数字値(または「真」の論理値)は、0の表現よりもより高い正の電圧で表される。実際の電圧は、部品の耐久性やノイズ耐性など、部品の特性に応じて決定される。例えば、[[transistor-transistor logic]](TTL)やその互換性のある回路では、デバイスの出力は、0が0.4ボルト以下、1が2.6ボルト以上で表される。入力は、0.8ボルト以下を0、2.2ボルト以上を1として認識するように設定されている。
== 関連項目 ==

===伝送と処理===
ビットは、[[シリアル通信]]では一度に1つずつ、[[パラレル通信]]では複数のビットが同時に送信される。[[ビット演算]]では、ビットを1つずつ処理する場合がある。データ転送速度は、通常、kbit/sなど[[ビット毎秒]](bit/s)に[[SI接頭辞]]をつけた単位で表され、[[2進接頭辞]]は使用されない。

===保存===
[[ジャカード織機]]やバベッジの[[解析機関]]などの最も初期の非電子情報処理装置では、機械的なレバーやギアの位置、または[[パンチカード|紙のカード]]や[[紙テープ|テープ]]の特定の位置の穴の有無としてビットが保存されていた。ディスクリートロジック用の初期の電気デバイス([[エレベータ]]や[[交通信号機]]の制御回路、[[電話交換機]]、コンラート・ツーゼのコンピュータなど)は、ビットを[[継電器|電気リレー]]のオン・オフの状態として表していた。1940年代からリレーが[[真空管]]に置き換えられたとき、コンピュータの設計者は、[[水銀遅延線]]を伝わる圧力パルス、[[ウィリアムス管]]の内面に蓄積される電荷、[[フォトリソグラフィ]]技術によって[[光ディスク|ガラスの円盤]]に印刷される不透明なスポットなど、様々な保存方法を実験した。

1950年代および1960年代に、これらの方法は、[[磁気コアメモリ]]、[[磁気テープ]]、[[磁気ドラムメモリ]]、[[磁気ディスク]]などの[[磁気記録|磁気記憶装置]]に大きく取って代わられた。磁気記憶装置では、ビットは[[強磁性]]フィルムの特定の領域の[[磁性]]の方向、またはある方向から他の方向への極性の変化として表現される。1980年代に開発された[[磁気バブル]]メモリでも同じ原理が使用され、鉄道の切符やクレジットカードなど[[磁気ストライプカード]]に使用されている。

[[Dynamic Random Access Memory|DRAM]]などの現代の[[半導体メモリ]]では、ビットは[[コンデンサ]]に保存された[[電荷]]の2つのレベルで表される。特定のタイプの[[プログラマブルロジックデバイス]]や[[read-only memory|RAM]]では、回路の特定のポイントでの導電パスの有無によってビットが表される。[[光ディスク]]では、ビットは反射面上の微小なピットの有無として表される。1次元[[バーコード]]では、ビットは交互の黒と白の線の太さとして表される。

==単位と記号==
ビットは、[[国際単位系]](SI)では定義されていないが、[[国際電気標準会議]](IEC)が発行した[[IEC 60027]]では、二進数の単位の記号は"bit"であり、キロビットを表す"kbit"など全ての倍数で使用されると規定している<ref name="NIST_2008"/>。ただし、小文字の"b"も広く使用されており、{{仮リンク|IEEE 1541-2002|en|IEEE 1541-2002|preserve=1}}などで推奨されている。慣習的に、大文字の"B"はバイトを表すのに使用される。

===複数のビットを表す単位===
{{ビットの単位表}}
伝統的に複数のビットを表す{{仮リンク|情報の単位|en|units of information|label=情報単位}}がいくつか使用されてきた。最も一般的なのは、1956年6月に{{仮リンク|ワーナー・ブッフホルツ|en|Werner Buchholz}}によって作られた単位「[[バイト (情報)|バイト]]」である。これは、歴史的にコンピュータで1つの[[キャラクタ (コンピュータ)|キャラクタ]]の符号化に使用されるビットの集まりを表すために使用された<ref name="Bemer_2000"/><ref name="Buchholz_1956"/><ref name="Buchholz_1977"/><ref name="Buchholz_1962"/><ref name="Bemer_1959"/>。このため、多くのコンピュータアーキテクチャで基本的な[[アドレス空間|アドレス]]の単位として使用された。過去には様々なビット数のバイトが使用されてきたが、今日では8ビットを1バイトとする実装が広く使用されている。ただし、バイトの大きさが基礎となるハードウェア設計に依存するという曖昧さを回避するために、8ビットであることを明示的に示す単位「[[オクテット (コンピュータ)|オクテット]]」が定義されている。

通常、コンピュータは、「[[ワード]]」と呼ばれる固定サイズのビットのグループ単位で操作を行う。バイトと同様に、1つのワードに含まれるビット数もハードウェア設計によって異なる。通常は8{{~}}80ビットだが、一部の専用コンピュータではさらに大きくなる。21世紀初頭において、パーソナルコンピュータやサーバコンピュータのワードサイズは32ビットまたは64ビットである。

[[国際単位系]]では、基本となる単位の十進数の倍量・分量を表す[[SI接頭辞|接頭辞]]が定義されている。これは一般的にビットやバイトに対しても適用されている。ただし、本来の十進数の倍量(1000の[[冪乗]])ではなく、[[1024]]の冪乗を表すのに使用されることもあり、曖昧さの回避のために1024の冪乗であることを明示する別の接頭辞が定義されている([[2進接頭辞]]を参照)。

==情報容量と情報圧縮==
ストレージの情報容量や通信路の情報容量がビットやビット毎秒で表されるとき、多くの場合でバイナリデータを格納するコンピュータハードウェアの容量である二進数を指す<ref name="Information in small bits"/>。ストレージの情報容量は、そこに格納される[[情報量]]の上限に過ぎない。ストレージに含まれる各ビットの2つの可能な値(1と0)の数が等しくない場合、ストレージに含まれる情報の情報量は、「情報容量」として表される数値よりも小さくなる。実際、値が完全に予測可能ならば、その値の読み取りからは新たな情報は得られない(不確実性の解決が発生せず、したがって情報が利用できないため、エントロピーはゼロである)。''n''ビットのストレージを使用するコンピュータファイルに含まれる情報が''m'' < ''n''ビットのみの場合、その情報は原則として少なくとも平均で約''m''ビットで符号化できる。この原則は、[[可逆圧縮|データ圧縮]]技術の基礎である。最適に圧縮された場合、伝送容量は情報量に近づく<ref name="Information in small bits"/>。

==ビット単位の操作==
一部の[[ビット演算]]のプロセッサ命令(''bit set''など)は、データをビットの集合と解釈して操作するのではなく、個別のビットを操作するレベルで動作する。

1980年代、[[ビットマップ]]コンピュータディスプレイが一般的になると、一部のコンピュータでは、画面上の特定の矩形領域に対応するビットを設定・コピーするための特殊な[[Bit Block Transfer|ビットブロック転送]]命令("bitblt"または"blit")を提供した。

[[バイト (情報)|バイト]]や[[ワード]]といった単位におけるビット位置の定義は[[CPU]]によって異なる。右端(数値としての最小位、[[最下位桁ビット|LSB]])を第0ビットにしている流儀と、左端(数値としての最大位、[[最上位桁ビット|MSB]])を第0ビットにしている流儀の両方がある。現在は前者が多い。この違いを[[エンディアン]]といい、前者をリトルエンディアン、後者をビッグエンディアンという

==関連項目==
* [[整数型]]
* [[プリミティブ型]]
* [[量子ビット]]
* {{仮リンク|ビットストリーム|en|Bitstream}}
* [[ボー]]
* [[二進法]]
* [[三進法]]
* [[バイト (情報)|バイト]] (byte)
* [[バイト (情報)|バイト]] (byte)
* [[8ビット]]
* [[8ビット]]
* [[オクテット (コンピュータ)|オクテット]]
* [[オクテット (コンピュータ)]]
* [[キャラクタ (コンピュータ)|キャラクタ]]
* [[キャラクタ (コンピュータ)]]
* [[ワード]]
* [[ワード]]
* [[シャノン (単位)]] - [[ナット (単位)]] - [[ハートレー (単位)]]
* [[データ量の比較]]
* [[情報量]]
* [[情報量]]
* [[シャノン (単位)]]
* [[データ量の比較]]

==脚注==
{{Reflist|refs=
<ref name="Mackenzie_1980">{{cite book |title=Coded Character Sets, History and Development |work=The Systems Programming Series |author-last=Mackenzie |author-first=Charles E. |date=1980 |edition=1 |publisher=[[Addison-Wesley Publishing Company, Inc.]] |isbn=978-0-201-14460-4 |lccn=77-90165 |page=x |url=https://books.google.com/books?id=6-tQAAAAMAAJ |accessdate=2016-05-22 |url-status=live |archiveurl=https://web.archive.org/web/20161118230039/https://books.google.com/books?id=6-tQAAAAMAAJ |archivedate=2016-11-18}} [https://web.archive.org/web/20160526172151/https://textfiles.meulie.net/bitsaved/Books/Mackenzie_CodedCharSets.pdf]</ref>
<ref name="Anderson_2006">{{cite |author-first1=John B. |author-last1=Anderson |author-first2=Rolf |author-last2=Johnnesson |date=2006 |title=Understanding Information Transmission}}</ref>
<ref name="Haykin_2006">{{cite |author-first=Simon |author-last=Haykin |date=2006 |title=Digital Communications}}</ref>
<ref name="IEEE_260">[[IEEE Std 260.1-2004]]</ref>
<ref name="Rowlett">{{cite web |url=https://www.unc.edu/~rowlett/units/dictB.html#bit |title=Units: B |url-status=live |archiveurl=https://web.archive.org/web/20160504055432/http://www.unc.edu/~rowlett/units/dictB.html#bit |archivedate=2016-05-04|accessdate=2019-10-01}}</ref>
<ref name="Abramson_1963">{{cite book |author-first=Norman |author-last=Abramson |date=1963 |title=Information theory and coding |publisher=[[McGraw-Hill]]}}</ref>
<ref name="NIST_2008">National Institute of Standards and Technology (2008), ''Guide for the Use of the International System of Units''. [http://physics.nist.gov/cuu/pdf/sp811.pdf Online version.] {{webarchive|url=https://web.archive.org/web/20160603203340/http://physics.nist.gov/cuu/pdf/sp811.pdf |date=3 June 2016}}</ref>
<ref name="Bush_1936">{{cite journal |author-last=Bush |author-first=Vannevar |author-link=Vannevar Bush |title=Instrumental analysis |journal=[[Bulletin of the American Mathematical Society]] |date=1936 |volume=42 |issue=10 |pages=649–669 |url=http://projecteuclid.org/euclid.bams/1183499313 |doi=10.1090/S0002-9904-1936-06390-1 |url-status=live |archiveurl=https://web.archive.org/web/20141006153002/http://projecteuclid.org/euclid.bams/1183499313 |archivedate=2014-10-06}}</ref>
<ref name="Shannon_1948_1">{{cite journal |author-last=Shannon |author-first=Claude Elwood |author-link=Claude Elwood Shannon |title=A Mathematical Theory of Communication |journal=[[Bell System Technical Journal]] |volume=27 |issue=3 |pages=379–423 |date=July 1948 |doi=10.1002/j.1538-7305.1948.tb01338.x |hdl=11858/00-001M-0000-002C-4314-2 |url=http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf |archiveurl=https://web.archive.org/web/19980715013250/http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf |url-status=dead |archivedate=1998-07-15 |quote=The choice of a logarithmic base corresponds to the choice of a unit for measuring information. If the base 2 is used the resulting units may be called binary digits, or more briefly ''bits'', a word suggested by [[John Wilder Tukey|J. W. Tukey]].}}</ref>
<ref name="Shannon_1948_2">{{cite journal |author-last=Shannon |author-first=Claude Elwood |author-link=Claude Elwood Shannon |title=A Mathematical Theory of Communication |journal=[[Bell System Technical Journal]] |volume=27 |issue=4 |pages=623–666 |date=October 1948 |doi=10.1002/j.1538-7305.1948.tb00917.x |hdl=11858/00-001M-0000-002C-4314-2}}</ref>
<ref name="Shannon_1949">{{cite book |author-last1=Shannon |author-first1=Claude Elwood |author-link1=Claude Elwood Shannon |author-first2=Warren |author-last2=Weaver |author-link2=Warren Weaver |title=A Mathematical Theory of Communication |publisher=[[University of Illinois Press]] |date=1949 |isbn=0-252-72548-4 |url=http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf |archiveurl=https://web.archive.org/web/19980715013250/http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf |url-status=dead |archivedate=1998-07-15}}</ref>
<ref name="Information in small bits">[https://informationinsmallbits.com/ Information in small bits] Information in Small Bits is a book produced as part of a non-profit outreach project of the IEEE Information Theory Society.
The book introduces Claude Shannon and basic concepts of Information Theory to children 8+ using relatable cartoon stories and problem-solving activities.</ref>
<ref name="Bemer_2000">{{cite web |title=Why is a byte 8 bits? Or is it? |author-first=Robert William |author-last=Bemer |author-link=Robert William Bemer |date=2000-08-08 |work=Computer History Vignettes |url=http://www.bobbemer.com/BYTE.HTM |access-date=2017-04-03 |url-status=dead |archiveurl=https://web.archive.org/web/20170403130829/http://www.bobbemer.com/BYTE.HTM |archivedate=2017-04-03 |quote=[…] With [[IBM]]'s [[IBM STRETCH|STRETCH]] computer as background, handling 64-character words divisible into groups of 8 (I designed the character set for it, under the guidance of Dr. [[Werner Buchholz]], the man who DID coin the term "[[byte]]" for an 8-bit grouping). […] The [[IBM System 360|IBM 360]] used 8-bit characters, although not ASCII directly. Thus Buchholz's "byte" caught on everywhere. I myself did not like the name for many reasons. […]}}</ref>
<ref name="Buchholz_1956">{{cite book |title=The Link System |chapter=7. The Shift Matrix |author-first=Werner |author-last=Buchholz |author-link=Werner Buchholz |date=1956-06-11 |id=[[IBM 7030|Stretch]] Memo No. 39G |publisher=[[IBM]] |pages=5–6 |chapter-url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-07/102632284.pdf |accessdate=2016-04-04 |url-status=live |archiveurl=https://web.archive.org/web/20170404152534/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-07/102632284.pdf |archivedate=2017-04-04 |quote=[…] Most important, from the point of view of editing, will be the ability to handle any characters or digits, from 1 to 6 bits long […] the Shift Matrix to be used to convert a 60-bit [[ワード|word]], coming from Memory in parallel, into [[キャラクタ (コンピュータ)|characters]], or "[[バイト (情報)|byte]]s" as we have called them, to be sent to the [[加算器|Adder]] serially. The 60 bits are dumped into [[磁気コア|magnetic core]]s on six different levels. Thus, if a 1 comes out of position 9, it appears in all six cores underneath. […] The Adder may accept all or only some of the bits. […] Assume that it is desired to operate on 4 bit decimal digits, starting at the right. The 0-diagonal is pulsed first, sending out the six bits 0 to 5, of which the Adder accepts only the first four (0-3). Bits 4 and 5 are ignored. Next, the 4 diagonal is pulsed. This sends out bits 4 to 9, of which the last two are again ignored, and so on. […] It is just as easy to use all six bits in [[英数字|alphanumeric]] work, or to handle bytes of only one bit for logical analysis, or to offset the bytes by any number of bits. […]}}</ref>
<ref name="Buchholz_1977">{{cite journal |author-last=Buchholz |author-first=Werner |author-link=Werner Buchholz |title=The Word "Byte" Comes of Age... |journal=[[Byte Magazine]] |date=February 1977 |volume=2 |issue=2 |page=144 |url=https://archive.org/stream/byte-magazine-1977-02/1977_02_BYTE_02-02_Usable_Systems#page/n145/mode/2up |quote=[…] The first reference found in the files was contained in an internal memo written in June 1956 during the early days of developing [[IBM 7030|Stretch]]. A [[バイト (情報)|byte]] was described as consisting of any number of parallel bits from one to six. Thus a byte was assumed to have a length appropriate for the occasion. Its first use was in the context of the input-output equipment of the 1950s, which handled six bits at a time. The possibility of going to 8 bit bytes was considered in August 1956 and incorporated in the design of Stretch shortly thereafter. The first published reference to the term occurred in 1959 in a paper "Processing Data in Bits and Pieces" by {{仮リンク|ゲリット・ブラウ|en|Gerrit Blaauw|label=G&nbsp;A&nbsp;Blaauw}}, [[フレデリック・ブルックス|F&nbsp;P&nbsp;Brooks&nbsp;Jr]] and {{仮リンク|ワーナー・ブッフホルツ|en|Werner Buchholz|label=W&nbsp;Buchholz}} in the ''[[IEEE Transactions on Computers|IRE Transactions on Electronic Computers]]'', June 1959, page 121. The notions of that paper were elaborated in Chapter 4 of ''[[#Buchholz-1962|Planning a Computer System (Project Stretch)]]'', edited by W&nbsp;Buchholz, [[McGraw-Hill Book Company]] (1962). The rationale for coining the term was explained there on page 40 as follows:<br/>Byte ''denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than ''character'' is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (ie, different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from ''[[bite]]'', but respelled to avoid accidental mutation to ''bit''.)''<br/>[[System/360]] took over many of the Stretch concepts, including the basic byte and word sizes, which are powers of 2. For economy, however, the byte size was fixed at the 8 bit maximum, and addressing at the bit level was replaced by byte addressing. […]}}</ref>
<ref name="Buchholz_1962">{{anchor|Buchholz-1962}}{{cite |title=Planning a Computer System – Project Stretch |author-first1=Gerrit Anne |author-last1=Blaauw |author-link1=Gerrit Anne Blaauw |author-first2=Frederick Phillips |author-last2=Brooks, Jr. |author-link2=Frederick Phillips Brooks, Jr. |author-first3=Werner |author-last3=Buchholz |author-link3=Werner Buchholz |editor-first=Werner |editor-last=Buchholz |editor-link=Werner Buchholz |publisher=[[McGraw-Hill Book Company, Inc.]] / The Maple Press Company, York, PA. |lccn=61-10466 |date=1962 |chapter=Chapter 4: Natural Data Units |format=PDF |pages=39–40 |url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/Buchholz_102636426.pdf |access-date=2017-04-03 |url-status=dead |archiveurl=https://web.archive.org/web/20170403014651/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/Buchholz_102636426.pdf |archivedate=2017-04-03}}</ref>
<ref name="Bemer_1959">{{cite journal |author-first=Robert William |author-last=Bemer |author-link=Robert William Bemer |title=A proposal for a generalized card code of 256 characters |journal=[[Communications of the ACM]] |volume=2 |number=9 |pages=19–23 |date=1959 |doi=10.1145/368424.368435}}</ref>
}}


== 外部リンク ==
==外部リンク==
* [http://www.bit-calculator.com/ Bit Calculator] – a tool providing conversions between bit, byte, kilobit, kilobyte, megabit, megabyte, gigabit, gigabyte
* [http://nxu.biz/tools/BitXByteConverter/ BitXByteConverter] – a tool for computing file sizes, storage capacity, and digital information in various units
* [http://yougo.ascii24.com/gh/66/006653.html ASCII24 - アスキー デジタル用語辞典 - ビット]
* [http://yougo.ascii24.com/gh/66/006653.html ASCII24 - アスキー デジタル用語辞典 - ビット]
* [http://e-words.jp/w/E38393E38383E38388.html e-Words ビット]
* [http://e-words.jp/w/E38393E38383E38388.html e-Words ビット]
42行目: 101行目:
{{デフォルトソート:ひつと}}
{{デフォルトソート:ひつと}}
[[Category:情報の単位]]
[[Category:情報の単位]]
[[Category:データ型]]
[[Category:コンピュータの算術]]
[[Category:コンピュータの算術]]

2019年10月30日 (水) 13:41時点における版

ビット(bit)は、情報理論コンピューティング、デジタル通信における情報の基本単位英語版である。二進数の1桁のことであり、その名前はbinary digitの2語の一部を組み合わせた後(かばん語)である[1]

情報理論では、1ビットは通常、等しい確率で0または1である二進数ランダム変数の情報量(情報エントロピー[2]、またはそのような変数の値が判明したときに得られる情報として定義される[3][4]。情報量の単位として、このビットはクロード・シャノンにちなんで名付けられたシャノンとも呼ばれる[5]。厳密には、ビットはデータ量の単位、シャノンは情報量の単位と区別するが、歴史的経緯により両者はしばしば同じ意味で使用される。

1ビットの情報は、二進数の1桁として論理値を表し、2つののうち1つのみを持つ。2つの状態を持つ何らかの機構によって物理的に実装できる。この状態値は、最も一般的には「0」/「1」として表されるが、真/偽、yes/no、+/-、on/offなどの他の表現も可能である。この値と実際の物理的状態との対応は慣習の問題であり、同じデバイスやプログラム内でも異なる割り当てを使用することができる。

ビットの単位記号は、IEC 80000-13:2008では"bit"、IEEE 1541-2002英語版IEEE Std 260.1-2004英語版では"b"(小文字のビー)を推奨している。一般に8桁の二進数のグループ(8ビット)は「1バイト(byte)」と呼ばれるが、歴史的にはバイトのサイズは厳密には定義されていない。

歴史

データを離散ビットによって表す方法は、バジル・ブション英語版ジャン=バプティスト・ファルコンフランス語版によって1732年に発明されジョゼフ・マリー・ジャカールが1804年に開発したパンチカードに使用され、後にセミオン・コルサコフ英語版チャールズ・バベッジハーマン・ホレリス、およびIBMなどの初期のコンピュータメーカーにより採用された。また、鑽孔紙テープも同様の考えによるものであった。これら全てのシステムで、媒体(カードやテープ)は概念的に穴の位置の配列を保持していた。それぞれの位置における穴の有無が1ビットの情報を伝達した。ビットによる文章の符号化は、モールス信号(1844年)や、テレタイプ株価表示機(1870年)などの初期のデジタル通信機でも使用されていた。

ラルフ・ハートレーは、1928年に情報の対数的計量の使用を提案した[6]クロード・シャノンは、1948年の独創的な論文『通信の数学的理論』で「ビット」という言葉を初めて使用した[7][8][9]。シャノンは、その言葉は1947年1月9日にベル研究所ジョン・テューキーが書いたメモにおいて"binary information digit"(二進数情報桁)を略して"bit"と書いたことに由来するとしている[7]。1936年にヴァネヴァー・ブッシュは、当時の機械式コンピュータで使用されていたパンチカードに保存できる情報量のことを"bits of information"(情報のビット)と書いた[10]コンラート・ツーゼによって構築された最初のプログラム可能なコンピュータは、数値に二進数表記を使用した。

物理的表現

ビットは、可能な2つの別個の状態英語版のいずれかを保持するデジタルデバイスやその他の物理システムによって格納できる。例えばフリップフロップの2つの安定状態、スイッチの2つの位置、電気回路で取り得る電圧または電流の2つの異なるレベル、2つの異なる光強度レベル、磁性または電気極性英語版の2つの方向、DNAの二本鎖の方向などである。

ビットはいくつかの形式で実装できる。ほとんどの最新のコンピュータデバイスでは、ビットは通常、電圧や電流のパルス、またはフリップフロップ回路の電気状態によって表される。

正論理を使用するデバイスの場合、1の数字値(または「真」の論理値)は、0の表現よりもより高い正の電圧で表される。実際の電圧は、部品の耐久性やノイズ耐性など、部品の特性に応じて決定される。例えば、transistor-transistor logic(TTL)やその互換性のある回路では、デバイスの出力は、0が0.4ボルト以下、1が2.6ボルト以上で表される。入力は、0.8ボルト以下を0、2.2ボルト以上を1として認識するように設定されている。

伝送と処理

ビットは、シリアル通信では一度に1つずつ、パラレル通信では複数のビットが同時に送信される。ビット演算では、ビットを1つずつ処理する場合がある。データ転送速度は、通常、kbit/sなどビット毎秒(bit/s)にSI接頭辞をつけた単位で表され、2進接頭辞は使用されない。

保存

ジャカード織機やバベッジの解析機関などの最も初期の非電子情報処理装置では、機械的なレバーやギアの位置、または紙のカードテープの特定の位置の穴の有無としてビットが保存されていた。ディスクリートロジック用の初期の電気デバイス(エレベータ交通信号機の制御回路、電話交換機、コンラート・ツーゼのコンピュータなど)は、ビットを電気リレーのオン・オフの状態として表していた。1940年代からリレーが真空管に置き換えられたとき、コンピュータの設計者は、水銀遅延線を伝わる圧力パルス、ウィリアムス管の内面に蓄積される電荷、フォトリソグラフィ技術によってガラスの円盤に印刷される不透明なスポットなど、様々な保存方法を実験した。

1950年代および1960年代に、これらの方法は、磁気コアメモリ磁気テープ磁気ドラムメモリ磁気ディスクなどの磁気記憶装置に大きく取って代わられた。磁気記憶装置では、ビットは強磁性フィルムの特定の領域の磁性の方向、またはある方向から他の方向への極性の変化として表現される。1980年代に開発された磁気バブルメモリでも同じ原理が使用され、鉄道の切符やクレジットカードなど磁気ストライプカードに使用されている。

DRAMなどの現代の半導体メモリでは、ビットはコンデンサに保存された電荷の2つのレベルで表される。特定のタイプのプログラマブルロジックデバイスRAMでは、回路の特定のポイントでの導電パスの有無によってビットが表される。光ディスクでは、ビットは反射面上の微小なピットの有無として表される。1次元バーコードでは、ビットは交互の黒と白の線の太さとして表される。

単位と記号

ビットは、国際単位系(SI)では定義されていないが、国際電気標準会議(IEC)が発行したIEC 60027では、二進数の単位の記号は"bit"であり、キロビットを表す"kbit"など全ての倍数で使用されると規定している[11]。ただし、小文字の"b"も広く使用されており、IEEE 1541-2002英語版などで推奨されている。慣習的に、大文字の"B"はバイトを表すのに使用される。

複数のビットを表す単位

ビットの単位一覧
SI接頭語
2進接頭辞
IEC 60027-2による)
単位 記号 SI基準 慣用値 単位 記号
キロビット kbit 103 210 キビビット Kibit 210
メガビット Mbit 106 220 メビビット Mibit 220
ギガビット Gbit 109 230 ギビビット Gibit 230
テラビット Tbit 1012 240 テビビット Tibit 240
ペタビット Pbit 1015 250 ペビビット Pibit 250
エクサビット Ebit 1018 260 エクスビビット Eibit 260
ゼタビット Zbit 1021 270 ゼビビット Zibit 270
ヨタビット Ybit 1024 280 ヨビビット Yibit 280

伝統的に複数のビットを表す情報単位英語版がいくつか使用されてきた。最も一般的なのは、1956年6月にワーナー・ブッフホルツ英語版によって作られた単位「バイト」である。これは、歴史的にコンピュータで1つのキャラクタの符号化に使用されるビットの集まりを表すために使用された[12][13][14][15][16]。このため、多くのコンピュータアーキテクチャで基本的なアドレスの単位として使用された。過去には様々なビット数のバイトが使用されてきたが、今日では8ビットを1バイトとする実装が広く使用されている。ただし、バイトの大きさが基礎となるハードウェア設計に依存するという曖昧さを回避するために、8ビットであることを明示的に示す単位「オクテット」が定義されている。

通常、コンピュータは、「ワード」と呼ばれる固定サイズのビットのグループ単位で操作を行う。バイトと同様に、1つのワードに含まれるビット数もハードウェア設計によって異なる。通常は8〜80ビットだが、一部の専用コンピュータではさらに大きくなる。21世紀初頭において、パーソナルコンピュータやサーバコンピュータのワードサイズは32ビットまたは64ビットである。

国際単位系では、基本となる単位の十進数の倍量・分量を表す接頭辞が定義されている。これは一般的にビットやバイトに対しても適用されている。ただし、本来の十進数の倍量(1000の冪乗)ではなく、1024の冪乗を表すのに使用されることもあり、曖昧さの回避のために1024の冪乗であることを明示する別の接頭辞が定義されている(2進接頭辞を参照)。

情報容量と情報圧縮

ストレージの情報容量や通信路の情報容量がビットやビット毎秒で表されるとき、多くの場合でバイナリデータを格納するコンピュータハードウェアの容量である二進数を指す[17]。ストレージの情報容量は、そこに格納される情報量の上限に過ぎない。ストレージに含まれる各ビットの2つの可能な値(1と0)の数が等しくない場合、ストレージに含まれる情報の情報量は、「情報容量」として表される数値よりも小さくなる。実際、値が完全に予測可能ならば、その値の読み取りからは新たな情報は得られない(不確実性の解決が発生せず、したがって情報が利用できないため、エントロピーはゼロである)。nビットのストレージを使用するコンピュータファイルに含まれる情報がm < nビットのみの場合、その情報は原則として少なくとも平均で約mビットで符号化できる。この原則は、データ圧縮技術の基礎である。最適に圧縮された場合、伝送容量は情報量に近づく[17]

ビット単位の操作

一部のビット演算のプロセッサ命令(bit setなど)は、データをビットの集合と解釈して操作するのではなく、個別のビットを操作するレベルで動作する。

1980年代、ビットマップコンピュータディスプレイが一般的になると、一部のコンピュータでは、画面上の特定の矩形領域に対応するビットを設定・コピーするための特殊なビットブロック転送命令("bitblt"または"blit")を提供した。

バイトワードといった単位におけるビット位置の定義はCPUによって異なる。右端(数値としての最小位、LSB)を第0ビットにしている流儀と、左端(数値としての最大位、MSB)を第0ビットにしている流儀の両方がある。現在は前者が多い。この違いをエンディアンといい、前者をリトルエンディアン、後者をビッグエンディアンという。

関連項目

脚注

  1. ^ Coded Character Sets, History and Development (1 ed.). Addison-Wesley Publishing Company, Inc.. (1980). p. x. ISBN 978-0-201-14460-4. LCCN 77--90165. オリジナルの2016-11-18時点におけるアーカイブ。. https://web.archive.org/web/20161118230039/https://books.google.com/books?id=6-tQAAAAMAAJ 2016年5月22日閲覧。  [1]
  2. ^ Understanding Information Transmission, (2006) 
  3. ^ Digital Communications, (2006) 
  4. ^ IEEE Std 260.1-2004
  5. ^ Units: B”. 2016年5月4日時点のオリジナルよりアーカイブ2019年10月1日閲覧。
  6. ^ Information theory and coding. McGraw-Hill. (1963) 
  7. ^ a b “A Mathematical Theory of Communication”. Bell System Technical Journal 27 (3): 379–423. (July 1948). doi:10.1002/j.1538-7305.1948.tb01338.x. hdl:11858/00-001M-0000-002C-4314-2. オリジナルの1998-07-15時点におけるアーカイブ。. https://web.archive.org/web/19980715013250/http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf. "The choice of a logarithmic base corresponds to the choice of a unit for measuring information. If the base 2 is used the resulting units may be called binary digits, or more briefly bits, a word suggested by J. W. Tukey." 
  8. ^ “A Mathematical Theory of Communication”. Bell System Technical Journal 27 (4): 623–666. (October 1948). doi:10.1002/j.1538-7305.1948.tb00917.x. hdl:11858/00-001M-0000-002C-4314-2. 
  9. ^ A Mathematical Theory of Communication. University of Illinois Press. (1949). ISBN 0-252-72548-4. オリジナルの1998-07-15時点におけるアーカイブ。. https://web.archive.org/web/19980715013250/http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf 
  10. ^ “Instrumental analysis”. Bulletin of the American Mathematical Society 42 (10): 649–669. (1936). doi:10.1090/S0002-9904-1936-06390-1. オリジナルの2014-10-06時点におけるアーカイブ。. https://web.archive.org/web/20141006153002/http://projecteuclid.org/euclid.bams/1183499313. 
  11. ^ National Institute of Standards and Technology (2008), Guide for the Use of the International System of Units. Online version. Archived 3 June 2016 at the Wayback Machine.
  12. ^ Why is a byte 8 bits? Or is it?”. Computer History Vignettes (2000年8月8日). 2017年4月3日時点のオリジナルよりアーカイブ。2017年4月3日閲覧。 “[…] With IBM's STRETCH computer as background, handling 64-character words divisible into groups of 8 (I designed the character set for it, under the guidance of Dr. Werner Buchholz, the man who DID coin the term "byte" for an 8-bit grouping). […] The IBM 360 used 8-bit characters, although not ASCII directly. Thus Buchholz's "byte" caught on everywhere. I myself did not like the name for many reasons. […]”
  13. ^ “7. The Shift Matrix”. The Link System. IBM. (1956-06-11). pp. 5–6. Stretch Memo No. 39G. オリジナルの2017-04-04時点におけるアーカイブ。. http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-07/102632284.pdf 2016年4月4日閲覧. "[…] Most important, from the point of view of editing, will be the ability to handle any characters or digits, from 1 to 6 bits long […] the Shift Matrix to be used to convert a 60-bit word, coming from Memory in parallel, into characters, or "bytes" as we have called them, to be sent to the Adder serially. The 60 bits are dumped into magnetic cores on six different levels. Thus, if a 1 comes out of position 9, it appears in all six cores underneath. […] The Adder may accept all or only some of the bits. […] Assume that it is desired to operate on 4 bit decimal digits, starting at the right. The 0-diagonal is pulsed first, sending out the six bits 0 to 5, of which the Adder accepts only the first four (0-3). Bits 4 and 5 are ignored. Next, the 4 diagonal is pulsed. This sends out bits 4 to 9, of which the last two are again ignored, and so on. […] It is just as easy to use all six bits in alphanumeric work, or to handle bytes of only one bit for logical analysis, or to offset the bytes by any number of bits. […]" 
  14. ^ “The Word "Byte" Comes of Age...”. Byte Magazine 2 (2): 144. (February 1977). https://archive.org/stream/byte-magazine-1977-02/1977_02_BYTE_02-02_Usable_Systems#page/n145/mode/2up. "[…] The first reference found in the files was contained in an internal memo written in June 1956 during the early days of developing Stretch. A byte was described as consisting of any number of parallel bits from one to six. Thus a byte was assumed to have a length appropriate for the occasion. Its first use was in the context of the input-output equipment of the 1950s, which handled six bits at a time. The possibility of going to 8 bit bytes was considered in August 1956 and incorporated in the design of Stretch shortly thereafter. The first published reference to the term occurred in 1959 in a paper "Processing Data in Bits and Pieces" by G A Blaauw英語版, F P Brooks Jr and W Buchholz英語版 in the IRE Transactions on Electronic Computers, June 1959, page 121. The notions of that paper were elaborated in Chapter 4 of Planning a Computer System (Project Stretch), edited by W Buchholz, McGraw-Hill Book Company (1962). The rationale for coining the term was explained there on page 40 as follows:
    Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (ie, different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
    System/360 took over many of the Stretch concepts, including the basic byte and word sizes, which are powers of 2. For economy, however, the byte size was fixed at the 8 bit maximum, and addressing at the bit level was replaced by byte addressing. […]"
     
  15. ^ Buchholz-1962Buchholz, Werner, ed. (1962), “Chapter 4: Natural Data Units” (PDF), Planning a Computer System – Project Stretch, McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp. 39–40, LCCN 61--10466, オリジナルの2017-04-03時点におけるアーカイブ。, https://web.archive.org/web/20170403014651/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/Buchholz_102636426.pdf 2017年4月3日閲覧。 
  16. ^ “A proposal for a generalized card code of 256 characters”. Communications of the ACM 2 (9): 19–23. (1959). doi:10.1145/368424.368435. 
  17. ^ a b Information in small bits Information in Small Bits is a book produced as part of a non-profit outreach project of the IEEE Information Theory Society. The book introduces Claude Shannon and basic concepts of Information Theory to children 8+ using relatable cartoon stories and problem-solving activities.

外部リンク