クエリ: コンピュータが主に使用する、数字を0と1の2種類のみで表わす方法のことを何というでしょう?
文章: コンピュータの数値表現 八進法と十六進法は二進法の3桁と4桁に直接対応するので、コンピュータ関連の数を表現するためなどによく使われている。たとえば、整数値を二進法で 1001001101010001 などと表示しても、ぱっとその値を把握することはできない。なので、八進法や十六進法がよく使われる。十進の体系では、10種類の数字(0 から 9)を組み合わせて数値を以下のように表す。八進の場合、8種類の数字を使う(0 から 7)。すなわち、八進の "10" は十進の "8" に等しく、八進の "20" は十進の "16" に等しい。十六進では、16種類の数字を使う(0 から 9 の後に一般に A から F までが続く)。すなわち、十六進の "10" は十進の "16" に等しく、十六進の "20" は十進の "32" に等しい。
文章: ブーリアン型 COMのステータスコードとして使われる32ビット整数のHRESULT型は、ゼロを成功(S_OK)、正数を準成功(S_FALSE: 失敗ではないが否定的な状態)、負数を失敗(E_FAILなど)、とみなす。成否の判定のためにSUCCEEDED()/FAILED()マクロが用意されている。C11で標準化されたerrno_t型はゼロを正常(エラーなし)とみなす。また、比較などで「小なり」「等しい」「大なり」の3通りの意味を返したい、といった場合には、負の値・ゼロ・正の値、とするのが自然であるため、たとえば代表例の strcmp() 関数では、文字列が等しいということを示すためにゼロが返される。なお、単に「文字列が等しいか?」という比較をする場合などに、以下のように論理否定演算子! 文章: 符号付数値表現 二進数における1の補数表現は、負の数の表現に絶対値のビット単位のNOTを適用することで得られる。符号-仮数部 表現のように、1の補数でも 0 には二種類の表現がある(00000000 (+0), 11111111 (-0))。例えば、00101011 (43) の1の補数は、11010100 (-43) である。1バイト幅で1の補数で表せる数値の範囲は -12710 から +12710 となる。この体系でふたつの数の足し算をするには、まず通常の二進数の加算を行い、演算の結果出てきたキャリー(桁あふれ)を戻して加算する必要がある。なぜそうなるのかを知るために、-1 (11111110) と +2 (00000010) を加算してみよう。二進数の加算を行うと 00000000 となってしまい、正しい答えではない。 文章: 常平通宝 1633年に常平通宝の鋳造が開始された当初は裏面に字がなかったが、1678年には裏面に発行所を表わす文字が1字付けられた。この両者を古常平と呼ぶが、ともに発行数・現存数は少なく、特に裏面に字のないものは現存数が極めて少ない。 1679年から、1枚で2文に当たる宋銭の制度にもあった折二銭が常平通宝の銭銘で発行され、その数は以前とは比較にならないほど大量であった。これ以降の常平通宝を新常平と呼ぶ。やっとこの頃から商品貨幣経済が発達し、常平通宝は朝鮮で本格的に流通するようになり、日本の寛永通宝のような地位を占めるに至った。常平通宝の折二銭の裏面は、発行所を表わす文字、漢数字の「二」または千字文その他の漢字、及び記号のようなものの組み合わせとなっており、種類が多い。千字文の漢字のうち常平通宝に使われているものは、始めの方の40~50文字となっている。 1752年にはやや小型化された折二銭が大量に鋳造・発行された。裏面は以前の折二銭とほぼ同様の構成で、多種類にわたる。ただし「二」以外の漢数字も見られる。 文章: 合同算術 情報処理において、数は n ビットでコードされる(つまり、数は 0 と 1 からなる長さ n の数列に対応する)。それは二元体 F2 上の n-次元ベクトル空間のベクトルと見なすことができる。この構造はしばしば F2 に係数を持つ次数が m より真に小さい多項式全体の成す空間と見なされる。乗法について閉じているためには、この空間は次数 n の適当な多項式 f で割られなければならない。その多項式 f が既約(素数に対応するもの)であるとき、得られる構造は位数 2 の有限体になる。数 a modulo 2 と多項式 P modulo f はよく似ており、事実のように書ける。 用例の一つは F2 上の疑似乱数生成器である。そのような生成器は例えば携帯電話での音声通信の文脈でストリーム暗号 A5/1 によって使われる。これは線形帰還シフトレジスタ (LFSR) の後ろの成分を持つ。 文章: キャレット記法 キャレット記法とは、表示できない文字であるASCIIの制御文字を、表示できる文字だけで書き表すための方法である。 使用するのはキャレット (^) と大文字のアルファベット(基本ラテン文字)である。アルファベットの先頭(A)から1, 2, 3, ..., 26と番号を振り、それぞれの制御文字のASCIIにおける値を持つアルファベットを使用する。例えば、テキスト終結(ETX)のASCIIでの値は3なので、アルファベットで3文字目の C を使って ^C と表す。ヌル文字(NUL)のASCIIでの値は0で対応するアルファベットがないので、ASCIIでAの1つ前にある @ を使って ^@ と表す。削除文字(DEL)のASCIIでの値は127で対応するアルファベットがないが、通常は ^? と表す。これは、ASCIIで ? が @ の1つ前でこれを「アルファベットの-1番目」とみなし、-1を8ビットの2の補数を使用して表したもの(二進数で11111111)を7ビットでマスクすると127になるからである。 多くのコンピュータシステムでは、コントロールキーとともにキャレット記法で使われるアルファベットを押すと、対応する制御文字を発生するようになっている。これは、ほとんどの制御文字をキーボードで直接入力することができないためである。制御文字を表す方法は他にもあるが、この仕様があるため、キャレット記法が最もよく使われる。 キャレット記法は多くのプログラムで使われている(例えば、UNIXの端末ドライバや、more、lessなどのテキストビューワ)。 文章: ルンゲ=クッタ法のリスト Lobatto法 は主に IIIA、 IIIB と IIIC(古典的な文献によって、記号 I と II は二種類のRadau法にのみ使われる)と呼ばれる三種類の方法を指している。方法の名称は Rehuel Lobatto にちなむ。それらの方法はすべて陰的であり、次数 2s-2 を持ち、係数に対し条件 c1 = 0 と cs = 1 を満たす。 Lobatto IIIA法 はコロケーション法である。 2次の方法は陰的台形公式として知られ、以下の配列で与えられる。 文章: コンピュータの数値表現 このコンピュータの数値表現(コンピュータのすうちひょうげん)の記事では、現代のコンピュータ、つまりデジタルコンピュータにおける数値の表現方法について解説する。 文章: コンピュータの数値表現 コンピュータにおける数値表現、もう少し具体的に言うと、コンピュータのCPU内部のレジスタや演算装置での数値の表現や、プログラミング言語での数値の表現や、OSでの数値の表現について解説する。 そもそもCPU内部のレジスタや演算器においては、数値は、たかだか 8ビット~128ビット程度の、限られた個数の、固定長のビット列で表わされている。そうした物理的な制約下で表現されたものであるので、コンピュータで扱われる「数値」というのは、数学で扱う(純粋に、概念的な)「数」とはしばしば、性質が異なっているもの、しばしば「別もの」の性質を示す、と考えたほうがよい。 文章: ビット演算 ビット単位ANDは、ふたつの同じ長さのビットパターンを入力とし、同じ位置のビット毎に論理的ANDを行って同じ長さのビットパターンを出力する操作である。各ビット位置で、入力するふたつのビットがどちらも1であれば、出力ビットは 1 となる。 C/C++では、ビット単位AND演算子は "&" (アンパサンド)で表される。 この例では、"y AND z" の結果を x に格納する。これは、C/C++の論理「積」演算子 "&&" (ふたつのアンパサンド)とは異なる。こちらは、オペランドをブーリアン値として取り扱い、結果を "true" か "false" とする。 文章: 位取り記数法 しかし、0のみは の二通りの表記が可能である(いわゆる負のゼロの問題)。これが原因で、コンピューター・プログラムでは0のみ例外処理を求められる場合がある。 また、一般には0は1桁の数とされているが、ルールを優先し1桁の数と認めない場合もある(覆面算#ルール)。 文章: コンピュータシステム コンピュータシステム(英:Computer System)とは、数値計算やデータ処理などを行うシステム、または制御にコンピュータを利用した制御システムの名称である。 文章: ゲーデル数 ゲーデル数は、数理論理学において何らかの形式言語のそれぞれの記号や論理式に一意に割り振られる自然数である。クルト・ゲーデルが不完全性定理の証明に用いたことから、このように呼ばれている。また、ゲーデル数を割り振ることをゲーデル数化と呼ぶ。 ゲーデル数のアイデアを暗に使っている例としては、コンピュータにおけるエンコードが挙げられる。 コンピュータでは何でも0と1で表し、「apple」のような文字列も0と1による数字で表す。 ゲーデル数化とは、このように文字列に数字を対応させる事を指す。 ゲーデル数化は、数式におけるシンボルに数を割り当てる符号化の一種でもあり、それによって生成された自然数の列が文字列を表現する。この自然数の列をさらに1つの自然数で表現することもでき、自然数についての形式的算術理論を適用可能となる。 ゲーデルの論文が発表された1931年以来、ゲーデル数はより広範囲な様々な数学的オブジェクトに自然数を割り振るのに使われるようになっていった。 文章: ゼロパディング 以前の処理系では、固定フォーマットを処理することが多く、またスペースを数値として処理できずにエラーとするものがあったため、ゼロサプレスよりもゼロパディングでの実装が多かったが、C言語などは先頭がゼロの場合に、処理方法によっては8進数として認識されてしまうため、固定フォーマットの場合でも、スペースパディング(空白埋め)で実装されるようになっている。また、機械学習の分野では畳み込みニューラルネットワークにおいて演算に先立ち画像などのデータの周囲に数値ゼロのピクセルを追加することがあり、この操作もゼロパディングと呼ばれている。 文章: ブール論理 CG業界用語でその名も「ブーリアン演算」と呼ばれているものであるが、立体などの図形を集合としてとらえる数学的な手法をそのまま工学的に応用したもので、かつそのまま具体化される点で、直観的にわかりやすい応用のひとつである。 ブール論理は論理回路の設計にも使われる。その場合、0 と 1 はディジタル回路でのビットの異なる2つの状態を表し、電圧の高低に対応させることが、現代では多い(必ずしもそうしなければならないわけではない)。回路は変数を含む式で表され、変数が回路の入力、式を評価した結果が回路の出力に相当する。入力と出力の対応が完全に与えられれば、それをブール論理の式で表現することができる。 ANDゲート、ORゲート、NOTゲートのような基本論理回路だけを使うこともできるが、NANDゲート、NORゲート、XORゲートなども組み合わせてディジタル回路を構成することができる。組み合わせ方は、演算子の優先順位に従って直列や並列に結合する。 文章: Non-return-to-zero 受信側では、復号時には非データの「0」ビットを読み飛ばす。