少し

ビットは、コンピューティングとデジタル通信における最も基本的な情報単位です。この名称は、 2進数(binary digit)組み合わせた造語です。[ 1 ]ビットは、 2つののいずれかを持つ論理状態を表します。これらの値は、一般的に10で表されますが、真/はい/いいえオン/オフ+ / -などの他の表現も広く使用されています。

これらの値と、基盤となるストレージまたはデバイスの物理状態との関係は慣例であり、同じデバイスまたはプログラム内であっても異なる割り当てが使用される場合があります。物理的には2状態デバイスで実装される場合があります。

連続した2進数のグループは、一般的にビット列、ビットベクトル、または1次元(または多次元)ビット配列と呼ばれます。8ビットのグループは1 バイトと呼ばれますが、歴史的にはバイトのサイズは厳密に定義されていません。[ 2 ]多くの場合、ハーフワード、フルワード、ダブルワード、クワドラプルワードは、2のべき乗のバイト数で構成されます。4ビットの文字列は通常、ニブルと呼ばれます。

情報理論において、1ビットとは、等確率で01をとるランダムな2値変数の情報エントロピー[ 3 ]、またはそのような変数の値が判明したときに得られる情報である。[ 4 ] [ 5 ]情報単位としてのビットは、クロード・E・シャノンにちなんでシャノン[6]とも呼ばれる。2アルファベットすなわちの記号として符号化されたデジタル文字列の長さの尺度として、ビットはビニット[ 7 ]と呼ばれてきたが、この用法は現在では稀である。[ 8 ]Σ{01}{\displaystyle \Sigma =\{{\texttt {0}},{\texttt {1}}\}}

データ圧縮における目的は、文字列のより短い表現を見つけて、格納または転送時に必要なビット数を減らすことです。文字列は、その前に短い表現に圧縮され、ストレージから読み取られたり受信されたりするときに元の形式に解凍されます。アルゴリズム情報理論の分野では、受信側が文字列の圧縮に使用された手法について最小限の事前知識しか持っていないという仮定の下、文字列の削減不可能な情報量 (つまり、ビット単位での可能な限り短い表現長) を研究します。エラー検出および訂正における目的は、文字列に冗長データを追加して、格納または転送中にエラーを検出または訂正できるようにすることです。冗長データは追加前に計算されて格納または転送され、データの読み取りまたは受信時にチェックまたは訂正されます。

2進数の記号は、IEC 80000-13 :2008規格では「ビット」、 IEEE 1541-2002規格では小文字の「b」のいずれかです。後者を使用すると、バイトを表す国際標準記号である大文字の「B」と混同される可能性があります。

歴史

ラルフ・ハートリーは1928年に対数的な情報量の使用を提案した。[ 9 ]クロード・E・シャノンは1948年の画期的な論文「通信の数学的理論」で初めて「ビット」という言葉を使用した。 [ 10 ] [ 11 ] [ 12 ]彼はその語源を、1947年1月9日のベル研究所のメモで「2進情報桁」を単に「ビット」と短縮したジョン・W・テューキーにあるとした。[ 10 ]

物理的な表現

ビットは、2つの異なる状態のいずれかで存在するデジタルデバイスまたはその他の物理システムによって保存されます。これらの状態には、フリップフロップの2つの安定状態、電気スイッチの2つの位置、回路によって許容される2つの異なる電圧または電流レベル、2つの異なる光強度レベル、磁化または分極の2つの方向、可逆的な二本鎖DNAの方向などがあります。

おそらくバイナリ記憶装置の最も古い例は、バジル・ブションとジャン=バティスト・ファルコン(1732年)によって発明されジョセフ・マリー・ジャカール(1804年)によって開発され、後にセミョン・コルサコフチャールズ・バベッジヘルマン・ホレリス、そしてIBMなどの初期のコンピュータメーカーに採用されたパンチカードである。そのアイデアの派生として、穴あき紙テープがある。これらすべてのシステムでは、媒体(カードまたはテープ)は概念的に穴の位置の配列を保持しており、各位置は穴が開いているか開いていないかであり、したがって1ビットの情報を伝送していた。ビットによるテキストの符号化は、モールス信号(1844年)やテレタイプ(1870年)などの初期のデジタル通信機器でも使用されていた。

離散論理を用いた最初の電気機器(エレベーター信号機の制御回路電話交換機、コンラート・ツーゼのコンピュータなど)は、ビットを電気リレーの「開」または「閉」の状態として表現していました。これらのリレーは機械式スイッチとして機能し、物理的に状態を切り替えてバイナリデータを表現するため、初期のコンピュータおよび制御システムの基本的な構成要素となりました。1940年代以降、リレーが真空管に置き換えられると、コンピュータ開発者は、水銀遅延線を伝わる圧力パルス、ブラウン管の内面に蓄積される電荷​​、フォトリソグラフィー技術によってガラスディスクに印刷された不透明な点など、さまざまなストレージ方式を試しました。

1950年代から1960年代にかけて、これらの方式は磁気コアメモリ磁気テープドラムディスクなどの磁気記憶装置に大きく取って代わられました。これらの装置では、ビットは強磁性膜の特定領域の磁化の極性、あるいはある方向から別の方向への極性の変化によって表されていました。同じ原理は後に1980年代に開発された磁気バブルメモリにも利用され、現在でも地下鉄の切符や一部のクレジットカードなど、様々な磁気テープ製品に使用されています。

ダイナミックランダムアクセスメモリソリッドステートドライブなどの現代の半導体メモリでは、ビットの2つの値は、コンデンサまたはフローティングゲートMOSFETに蓄積された2つの電荷レベルによって表されます。特定の種類のプログラマブルロジックアレイリードオンリーメモリでは、ビットは回路の特定のポイントにおける導電パスの有無によって表される場合があります。光ディスクでは、ビットは反射面上の微細なピットの有無としてエンコードされます。1次元バーコードと2次元QRコードでは、ビットは黒または白の線または四角形としてエンコードされます。

現代のデジタルコンピューティングでは、ビットはブール論理ゲートで変換されます。

伝送と処理

シリアル伝送では、ビットは1つずつ送信されます。一方、パラレル伝送では、複数のビットが同時に送信されます。シリアルコンピュータは、ビットシリアル方式またはバイトシリアル方式のいずれかで情報を処理します。データ通信の観点から見ると、バイトシリアル伝送はバイナリ信号を用いた8方向パラレル伝送です。

Cなどのプログラミング言語では、ビット演算はバイナリ文字列をバイナリ数値として解釈するのではなく、ビットのベクトルであるかのように操作します。

データ転送速度は通常、SI単位の10進数の倍数で測定されます。例えば、チャネル容量は8 kbit/s = 1 kB/sと指定される場合があります。

ストレージ

ファイルサイズは、多くの場合、IECのバイト単位(2進数)で測定されます。例えば、1 KiB = 1024 バイト = 8192 ビットです。歴史的な理由により、ファイルサイズがIEC標準のKi、Mi、Giではなく、曖昧なK、M、Gという接頭辞を用いた2進数の乗数で指定される場合、混乱が生じる可能性があります。[ 13 ]

大容量ストレージデバイスは通常、1 TB =バイトなど、10 進 SI 倍数で測定されます。 1012{\displaystyle 10^{12}}

紛らわしいことに、 DRAMチップなどの直接アドレス指定可能なメモリデバイス、あるいはメモリモジュール上のそのようなチップの集合体の記憶容量は、IEC推奨のGi接頭辞ではなく、曖昧な接頭辞Gを用いて2進数の倍数で指定されます。例えば、「1GB」の容量を持つと指定(および宣伝)されているDRAMチップは、バイト単位の容量を持っています。2022年時点でも、「8GB」の容量を持つメモリシステムに対する一般的な理解と、SI法における正しい「8GB」の意味との間の差異は、ソフトウェア設計者にとって依然として問題となっていました。[ 14 ]230{\displaystyle 2^{30}}

単位と記号

ビットは国際単位系(SI)では定義されていません。しかし、国際電気標準会議(IEC)は規格IEC 60027を発行しており、2進数の記号は「ビット」とし、キロビットを表す「kbit」のように、すべての倍数でこの記号を使用する必要があると規定しています。[ 15 ]一方、小文字の「b」も広く使用されており、IEEE 1541規格(2002年)でも推奨されています。一方、バイトを表す標準的かつ慣習的な記号は大文字の「B」です。

複数ビット

複数ビットユニット
小数点
価値 SIメートル法
1000 キロビットキロビット
1000 2メガビットメガビット
1000 3ギガビットギガビット
1000 4ティービットテラビット
1000 5ピビットペタビット
1000 6Eビットエクサビット
1000 7ズビットゼタビット
1000 8イビットヨタビット
1000 9Rビットロナビット
1000 10Qビットクエタビット
バイナリ
価値 IECJEDEC
1024 キビットキビビット キロビットキロバイトキロビット
1024 2ミビットメビビット メガビットメガバイトメガビット
1024 3ギビットギビビット ギガビットギガバイトギガビット
1024 4ティビットテビビット
1024 5ピビットペビビット
1024 6エイビット展示品
1024 7ジビットゼビビット
1024 8イビットヨビビット
1024 9リビットロビビット
1024 10キビットケビビット
膨大なデータ

複数ビットは、いくつかの方法で表現および表現できます。情報技術で一般的に繰り返し発生するビットのグループを表現する便宜上、伝統的にいくつかの情報単位が使用されてきました。最も一般的なのは、1956年6月にWerner Buchholzによって造られた単位バイトです。これは歴史的に、コンピュータでテキストの1文字をエンコードするために使用されるビットのグループを表すために使用されてきました[ 2 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] 。このため、多くのコンピュータアーキテクチャで基本的なアドレス指定可能な要素として使用されました。1993年までに、ハードウェア設計の傾向は8ビットバイトに収束しました[ 20 ]。 ただし、基礎となるハードウェア設計に依存する曖昧さのため、単位オクテットが8ビットのシーケンスを明示的に示すように定義されました。

コンピュータは通常、固定サイズのビット群を単位として操作します。この単位は慣習的に「ワード」と呼ばれます。バイトと同様に、ワードのビット数もハードウェアの設計によって異なり、通常は8~80ビットですが、一部の特殊なコンピュータではそれ以上のビット数になることもあります。21世紀初頭には、市販のパーソナルコンピュータやサーバーコンピュータのワードサイズは32ビットまたは64ビットです。

国際単位系(IOS)は、標準化された単位の倍数を表す一連の十進接頭辞を定義しており、これらはビットやバイトにも一般的に用いられます。キロ(10 3)からクエッタ(10 30)までの接頭辞は1000の倍数で増加し、対応する単位はキロビット(kbit)からクエッタビット(Qbit)です。

参照

参考文献

  1. ^ Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (第1版). Addison-Wesley Publishing Company, Inc. p. x. ISBN 978-0-201-14460-4. LCCN  77-90165 . 2016年5月26日時点のオリジナルよりアーカイブ(PDF) . 2019年8月25日閲覧.
  2. ^ a b Bemer, Robert William (2000-08-08). 「なぜ1バイトは8ビットなのか? それともそうなのか?」 . Computer History Vignettes . 2017-04-03にオリジナルからアーカイブ。2017-04-03閲覧 [ ...] IBMSTRETCHコンピュータを背景に、8ビットのグループに分割可能な64文字の単語を処理していました(私は、8ビットのグループを表す「バイト」という用語を考案したWerner Buchholz博士の指導の下、その文字セットを設計しました)。[...] IBM 360は8ビット文字を使用していましたが、ASCIIを直接使用したわけではありませんでした。そのため、Buchholzの「バイ​​ト」という名前は広く普及しました。私自身は、多くの理由からこの名前が好きではありませんでした。[...]
  3. ^アンダーソン、ジョン・B.; ジョンネソン、ロルフ(2006)「情報伝達の理解」
  4. ^ヘイキン、サイモン(2006)、デジタルコミュニケーション
  5. ^ IEEE規格260.1-2004
  6. ^ 「Units: B」2016年5月4日時点のオリジナルよりアーカイブ。
  7. ^ Breipohl, Arthur M. (1963-08-18).適応型通信システム(博士論文). ニューメキシコ大学. p. 7. 2025年1月7日閲覧
  8. ^ "binit" . The Free Dictionary . 2025年1月7日閲覧。
  9. ^アブラムソン、ノーマン (1963).情報理論と符号化.マグロウヒル.
  10. ^ a bシャノン、クロード・エルウッド(1948年7月)「通信の数学的理論」(PDF) .ベルシステム技術ジャーナル. 27 (3): 379– 423. Bibcode : 1948BSTJ...27..379S . doi : 10.1002/j.1538-7305.1948.tb01338.x . hdl : 11858/00-001M-0000-002C-4314-2 . 1998年7月15日時点のオリジナル(PDF)からアーカイブ– ベル研究所計算・数理科学研究経由。対数の底の選択は、情報測定の単位の選択に対応する。基数 2 が使用される場合、結果の単位は 2 進数、またはもっと簡単に言えばJW Tukeyが提案した言葉であるビットと呼ばれることがあります。
  11. ^シャノン、クロード・エルウッド(1948年10月). 「通信の数学的理論」.ベルシステム技術ジャーナル. 27 (4): 623– 666. Bibcode : 1948BSTJ...27..623S . doi : 10.1002/j.1538-7305.1948.tb00917.x . hdl : 11858/00-001M-0000-002C-4314-2 .
  12. ^シャノン、クロード・エルウッドウィーバー、ウォーレン(1949). 『コミュニケーションの数学的理論』 (PDF) .イリノイ大学出版局. ISBN 0-252-72548-41998年7月15日時点のオリジナル(PDF)からアーカイブ– Bell Labs Computing and Mathematical Sciences Research経由。{{cite book}}:ISBN / 日付の非互換性(ヘルプ
  13. ^ 「UnitsPolicy - Ubuntu Wiki」 . 2025年1月7日閲覧
  14. ^ 「VMメモリ入力にMB/GB/TBサフィックスを使用する」 . Github Netboxコミュニティ. 2022年. 2025年1月8日閲覧
  15. ^米国国立標準技術研究所(2008年)「国際単位系の使用ガイド」オンライン版。 2016年6月3日アーカイブ、Wayback Machineより
  16. ^ Buchholz, Werner (1956-06-11). "7. シフトマトリックス" (PDF) .リンクシステム. IBM . pp.  5– 6.ストレッチメモ No. 39G. 2017-04-04にオリジナルからアーカイブ(PDF) 。2016-04-04に取得[...] 編集の観点から最も重要なのは、1ビットから6ビットまでの任意の文字または数字を処理できることです。[...] シフトマトリックスは、メモリから並列に送られる60ビットワードを、加算器にシリアルに送られる文字(ここでは「バイト」と呼んでいます)に変換するために使用します。60ビットは、 6つの異なるレベルの磁気コアにダンプされます。したがって、位置9から1が出てくると、その下の6つのコアすべてに1が現れます。 [...] 加算器は、すべてのビットを受け入れることも、一部のビットのみを受け入れることもできます。[...] 右から4ビットの10進数で演算を行うとします。最初に対角0にパルスが送られ、0~5の6ビットが送信されます。加算器は、そのうち最初の4ビット(0~3)のみを受け入れます。ビット4と5は無視されます。次に、対角4にパルスが送られます。これにより、ビット4~9が送信され、最後の2ビットは再び無視されます。[...]英数字処理に6ビットすべてを使用することも、1ビットのみのバイトを論理分析のために処理することも、バイトを任意のビット数だけオフセットすることも同様に簡単です。[...]
  17. ^ Buchholz, Werner (1977年2月). 「『バイト』という言葉が成熟する…」Byte Magazine . 2 (2): 144. [...] ファイル内で最初に発見された言及は、 Stretchの開発初期段階の1956年6月に書かれた社内メモに含まれていましたバイトは1から6までの任意の数の並列ビットで構成されると説明されていました。したがって、バイトの長さは状況に応じて適切に設定されていました。バイトが初めて使用されたのは、1950年代の入出力機器においてで、当時は6ビットずつ処理されていました。8ビットバイトへの移行の可能性は1956年8月に検討され、その後まもなくStretchの設計に組み込まれました。この用語が初めて公に言及されたのは、1959年6月のIRE Transactions on Electronic Computers誌121ページに掲載された、G A Blaauw、F P Brooks Jr、W Buchholzによる論文「Processing Data in Bits and Pieces」です。この論文概念W Buchholz編『 Planning a Computer System (Project Stretch)』 ( McGraw-Hill Book Company、1962年)の第4章で詳しく述べられています。この用語の造語理由は、同誌40ページで次のように説明されています。「バイト」とは、文字を符号化するために使用されるビットの集合、または入出力装置間で並列に伝送されるビット数を表します。ここで「文字」以外の用語を使用するのは、ある文字が異なるアプリケーションで複数のコードで表現される場合があり、また異なるコードでは異なるビット数(つまり、異なるバイトサイズ)が使用される場合があるためです。入出力伝送においては、ビットの集合は完全に任意であり、実際の文字とは無関係です。 (この用語はbiteから作られた造語ですが、誤ってbitに変化することを避けるために綴りが変えられています。) System/360 は、2 の累乗である基本的なバイト サイズとワード サイズを含む、Stretch の概念の多くを引き継ぎました。ただし、経済性を考慮して、バイト サイズは最大 8 ビットに固定され、ビット レベルのアドレス指定はバイト アドレス指定に置き換えられました。 [...]
  18. ^Blaauw, Gerrit Anne ; Brooks, Jr., Frederick Phillips ; Buchholz, Werner (1962)、「第4章: 自然データ単位」(PDF)Buchholz, Werner (編)『Planning a Computer System – Project Stretch』McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA.、pp.  39– 40、LCCN  61-10466 、2017年4月3日時点のオリジナル(PDF)からアーカイブ、 2017年4月3日取得
  19. ^ Bemer, Robert William (1959). 「256文字の一般化カードコードの提案」 Communications of the ACM . 2 (9): 19– 23. doi : 10.1145/368424.368435 . S2CID 36115735 . 
  20. ^ 「ISO/IEC 2382-1:1993(en) 情報技術 — 語彙 — パート1:基本用語」 . p. 01.02.09 . 2025年1月8日閲覧。
  • ビット計算機– ビット、バイト、キロビット、キロバイト、メガビット、メガバイト、ギガビット、ギガバイト間の変換を提供するツール
  • BitXByteConverter 2016年46日アーカイブ- ファイルサイズ、ストレージ容量、デジタル情報を様々な単位で計算するツール