クエリ: コンピュータが主に使用する、数字を0と1の2種類のみで表わす方法のことを何というでしょう?
文章: 二進法 電子式コンピュータの電子回路などのデジタル回路(デジタル論理回路)、磁気ディスク等の記憶メディアでは、電圧の高低、磁極の N/S など、物理現象を二状態のみに縮退して扱う(離散化などと言う)ので、それに、真と偽の2つの値(2値の真理値)のみを使用する二値論理(しばしば、電子的には H と L、論理的には T と F という記号が使われる)をマッピングする。更にそこで数値を扱うには、それに「0 と 1」の二進法をマッピングするのが最適である。多くの応用で見られるように桁数が有限の場合は、数学的に言うなら「有理数の部分集合」が表現されているわけであるが、通常は「有限精度の実数」が表現されていると解釈される。このため、コンピュータやデジタル機器は二進数が使用される。二進数にもデメリットがあり、数が大きくなる程桁が増えてしまい、0と1だけの並びとあって人間には見にくい。
文章: ビット 過去には様々なビット数のバイトが使用されてきたが、今日では8ビットを1バイトとする実装が広く使用されている。ただし、バイトの大きさが基礎となるハードウェア設計に依存するという曖昧さを回避するために、8ビットであることを明示的に示す単位「オクテット」が定義されている。通常、コンピュータは、「ワード」と呼ばれる固定サイズのビットのグループ単位で操作を行う。バイトと同様に、1つのワードに含まれるビット数もハードウェア設計によって異なる。通常は8~80ビットだが、一部の専用コンピュータではさらに大きくなる。21世紀初頭において、パーソナルコンピュータやサーバコンピュータのワードサイズは32ビットまたは64ビットである。国際単位系では、基本となる単位の十進数の倍量・分量を表すSI接頭語が定義されている。これは一般的にビットやバイトに対しても適用されている。 文章: コンマ インドにおける桁区切りには、イギリス、米国、中国などと同じく、コンマを用いるが、数字列におけるコンマの位置は独特である。現地語の位取りの読み方にしたがい、はじめの3桁(千の位)の位置、その後は2桁ごと(10万の位、1千万の位、10億の位...)にコンマを置く。科学と技術の分野では、3桁ごとの桁区切りにコンマを用いず、空白(スペース)を用いる。その理由は、ヨーロッパ大陸(フランス、ドイツ、イタリア、ロシアなど)では桁区切りにピリオドを、小数点にコンマを用いるのに対し、イギリス、米、中国、日本ではこれとは逆に、桁区切りにコンマを、小数点にピリオドを用いるので、この違いによる重大な誤読を防ぐためである。詳細は小数点#二つの方式を参照のこと。 文章: アンパック10進数 アンパック10進数(英: unpacked BCD)とは、数値をコンピュータ上で表現する手法の一つで、BCDをベースに定義されている。ゾーン10進数とも呼ぶ。パック10進数の登場により、「パック」ではないという意味で「アンパック」と呼ばれるようになったものと推測される。10進数の1桁を、4桁のゾーンビットと4桁の数値ビットとに分けて表現する。数値の最後の桁はゾーンビットではなく正の数か負の数かを判断するための符号ビットが割り当てられる。なお、ゾーンビットは、EBCDICでは15、JIS8コードでは3を、符号ビットは、IBM互換のメインフレームでは正の数に12、負の数に13が割り当てられている。符号部についてはCOBOLベンダ各社で相違があるため、非常に互換性が低い。 文章: コンピュータの数値表現 演算において符号を気にする必要がないのは、2 を法とした合同式になっているためである。例えば、15 ≡ -1 (mod 16) である。コンピュータは一般に固定のビット数で数値を表すので、法が一定であり理想的である。2の補数表現と符号なし表現の違いは、大小比較方法と表示方法である。 文章: ORDVAC そのメインメモリは1024ワード(1ワードは40ビット)の容量で、ウィリアムス管を使用していた。また、非常に珍しい非同期設計のマシンであり、命令実行を同期させるクロックがなかった。ある命令はその前の命令が終わったのをトリガーとして実行開始されるようになっていた。ORDVAC とアバディーン性能試験場での後継機 BRLESC(英語版)は、独特な十六進法の数値記法を採用していた。通常、十進の10から15に当たる記号として A・B・C・D・E・F が使われるが、K・S・N・J・F・L (King Sized Numbers Just for Laughs) というアルファベットを使っていた。これはテレタイプ端末の5トラックの紙テープ上の文字に対応している。 文章: コンピュータの数値表現 このコンピュータの数値表現(コンピュータのすうちひょうげん)の記事では、現代のコンピュータ、つまりデジタルコンピュータにおける数値の表現方法について解説する。 文章: 確率的チューリング機械 確率的チューリング機械(かくりつてきチューリングきかい、英: Probabilistic Turing machine)は、計算可能性理論において、各時点で何らかの確率分布に従って状態遷移をランダムに選択する非決定性チューリング機械の一種である。各遷移の確率がいずれも等しければ、決定性チューリング機械にその文字セット(一般に '1' と '0')についてそれぞれの文字を等確率で書く "write" 命令を持たせたものと定義できる。また、決定性チューリング機械に追加のテープとしてランダムなビット列が延々と書かれているものを追加したものと考えることもできる。結果として、確率的チューリング機械は確率論的な結果を生み出す。同じ入力と命令状態であっても、実行するたびに結果が変わり、場合によっては停止しないこともある。 文章: マジックナンバー (プログラム) また、1や0はそれ自体が「真」・「偽」などの意味(真理値)を示しうる数値であり、使われる文脈によってはマジックナンバーとは呼ばないこともある。古いC言語では、意味を明確にするため、1/0の数値を直接用いるのではなく、TRUEやFALSEといったシンボルを明示的に定義して利用することがあった。 現在のC言語規格案では、 _Bool Definitions For true and false. 文章: -0 コンピュータにおける負の値の扱い方にはいろいろあるが、IEEE 754 が採用しているような「符号と絶対値」方式による表現では、ゼロについて、 の二種類の表現が可能であるため、問題が生じることがある。なお21世紀にはほとんど見られなくなったがかつては、整数の表現についても「符号と絶対値」方式が採用されることもあった。 例えば、IEEE 754 では、x == y といったような通常の比較において、通常のゼロと負のゼロを比較した場合、真になることを要求している。単にワードを整数と同様に比較しただけでは、その要求を満たすことができない。もっとも、IEEE 754 ではたとえば NaN についても同様に例外的な扱いが必要なので ( NaN == NaN は常に偽で NaN != NaN は常に真) 、実装上、負のゼロがきわめて特異というわけでもない(IEEE 754 では)。 文章: ビット演算 各演算について説明し、その演算の基本を解説。 ビット演算の種類を示す演算子をビット演算子(bitwise operator)という。おまけだが、各プログラミング言語での表記法も紹介する。 なお現状では肝心のアセンブリ言語での表記法(や文法)が説明されていないが、今後説明してゆく。とりあえずx86のアセンブリ言語でのビット演算の表記法については当ウィキペディアと姉妹サイトであるWikibookにまとめた記事があるのでそちらを参照のこと(x86, Logic、 x86, Shift and Rotate)。 ビット単位NOTあるいは補数とは論理否定を各ビットに対して行う単項演算。0 は 1 になり、1 は 0 になる。各ビットを反転させるのでビット反転ともいう。 文章: ファミリーキャッチャー アームは最多で6本で使用できるアーム数がプレイごとに2~6本と5パターンに変化し、使用できるアームはユーザーが自由に選択できる。基本はキャッチャー部中央の2本のアームを使用してのプレイだが、ユーザーの運次第では基本の2本にプラスされ、最多6本のアームを使ってプレイすることができるようになる。追加アームの数は、コンパネ部に用意されているデジタルルーレットによって決まる。コイン投入が、回転するルーレットをストップボタンを押して停止させ、その時表示されている数字(0~4)が追加アームの数となる。使用したいアームは、ルーレットの隣にあるボタンで選択することができ、使用しないアームはキャッチャー部に折りたたまれる。ルーレットで4が出た時(6本アーム使用時)にはファンファーレが鳴る。アームスプリングの強さは36段階、追加アーム数を決定するルーレットで出やすい数字を変更するパターンは9種類ある。この2つの設定を組み合わせることで、オペレーターは324パターンの中からロケに合ったマシン調節をすることができる。また、1P、2Pで違う設定にすることも可能。アームの種類は大中小の3種類がある。 文章: ブール論理 CG業界用語でその名も「ブーリアン演算」と呼ばれているものであるが、立体などの図形を集合としてとらえる数学的な手法をそのまま工学的に応用したもので、かつそのまま具体化される点で、直観的にわかりやすい応用のひとつである。 ブール論理は論理回路の設計にも使われる。その場合、0 と 1 はディジタル回路でのビットの異なる2つの状態を表し、電圧の高低に対応させることが、現代では多い(必ずしもそうしなければならないわけではない)。回路は変数を含む式で表され、変数が回路の入力、式を評価した結果が回路の出力に相当する。入力と出力の対応が完全に与えられれば、それをブール論理の式で表現することができる。 ANDゲート、ORゲート、NOTゲートのような基本論理回路だけを使うこともできるが、NANDゲート、NORゲート、XORゲートなども組み合わせてディジタル回路を構成することができる。組み合わせ方は、演算子の優先順位に従って直列や並列に結合する。 文章: 合同算術 情報処理において、数は n ビットでコードされる(つまり、数は 0 と 1 からなる長さ n の数列に対応する)。それは二元体 F2 上の n-次元ベクトル空間のベクトルと見なすことができる。この構造はしばしば F2 に係数を持つ次数が m より真に小さい多項式全体の成す空間と見なされる。乗法について閉じているためには、この空間は次数 n の適当な多項式 f で割られなければならない。その多項式 f が既約(素数に対応するもの)であるとき、得られる構造は位数 2 の有限体になる。数 a modulo 2 と多項式 P modulo f はよく似ており、事実のように書ける。 用例の一つは F2 上の疑似乱数生成器である。そのような生成器は例えば携帯電話での音声通信の文脈でストリーム暗号 A5/1 によって使われる。これは線形帰還シフトレジスタ (LFSR) の後ろの成分を持つ。 文章: コンピュータの数値表現 コンピュータにおける数値表現、もう少し具体的に言うと、コンピュータのCPU内部のレジスタや演算装置での数値の表現や、プログラミング言語での数値の表現や、OSでの数値の表現について解説する。 そもそもCPU内部のレジスタや演算器においては、数値は、たかだか 8ビット~128ビット程度の、限られた個数の、固定長のビット列で表わされている。そうした物理的な制約下で表現されたものであるので、コンピュータで扱われる「数値」というのは、数学で扱う(純粋に、概念的な)「数」とはしばしば、性質が異なっているもの、しばしば「別もの」の性質を示す、と考えたほうがよい。 文章: Dammアルゴリズム Dammアルゴリズムは、Verhoeffアルゴリズムと同様に、最も頻繁に起こる2種類の誤り、すなわち1桁の入力誤りと、(末尾に付け足されたチェックディジットとその直前の数字の入れ値替えを含む)隣り合う2桁の入れ違えの、2種類の誤りを検出できる。しかしDammアルゴリズムは、Verhoeffアルゴリズムと異なり、実行に際し、専用に構成された置換表と位置に応じた冪乗表を必要としない。さらに、逆元の表も演算表の主対角成分が0の時は必要ない。 Dammアルゴリズムは10種を超えるチェックディジットを出力しないため、(ISBN10のチェックディジットにおける'X'のような)数字以外の文字をチェックディジットとして用意する必要がない。 チェック対象の数字列の先頭に0をいくつ付け加えても、チェックディジットには影響しない。