クエリ: コンピュータが主に使用する、数字を0と1の2種類のみで表わす方法のことを何というでしょう?
文章: コンピュータの数値表現 コンピュータにおいてはしばしば、有限の長さのビット列で数値を表す。例えば1ビットで2通りの値(0, 1)を表わせ、2ビットで2×2通り(00, 01, 10, 11)の値を表せる。ビット長で表現できる範囲において、整数の計算は誤差なく行えるが、一般の実数を表す際には丸め誤差が生じる。典型的には、数値は二進法で表されるため、2の冪以外での除算は循環小数として表さなければならない。有限の長さのビット列では循環小数の小数部をすべて表すことができず、有限小数で近似する必要がある。 例えば、は有理数の範囲では等価だが、1 ÷ 3 を先に計算する場合、これは循環小数の近似値を与え、3 を掛けた結果は 1 に戻らない。結果を十進数で表す際、アルゴリズムによって 0.9999999999999999 や 0.99999999923475 のような値を表示する。
文章: 十六進法 読み方は十進表記の1000((いっ)せん)と区別するため、文字並びのまま読む(例えば、0x1000 は「ぜろ・エックス・いち・ぜろ・ぜろ・ぜろ」と読む)。慣用では「ヘキサの千」もしくは「千ヘキサ」と言った読み方も行われている。 上記の数字に付く h や x は英語で十六進法を意味する hexadecimal から取ったものである。十六進表記であることを明示している。 A - F の文字を用いて 9 以上の数字を表現する方法はコンピューター黎明期にはまだ一般的ではなかった。 文章: パーセント記号 ASCIIコードに収録されていて入出力しやすいことから、プログラミング言語や CUIシェルなどで、本来の意味を超えて特別な意味を持たせていることがある。C言語の書式付入出力関数(printf など)では書式指定を示す。たとえば、%d で整数、%c で 1 文字などの出力となる。他の言語でも同様のものが見られる。剰余の演算子として使用する言語もある。C 言語の例:25 を 7 で割った余り (剰余)の 4 が a に代入される。C 言語では整数型のみだが、Java では実数も扱うことができる。MS-DOS や Microsoft Windows などでは、標準のコマンドラインインタプリタにおいて環境変数を表す記号として使用されている。「%PATH%」が環境変数 PATH の値に置換された後に echo コマンドが実行されて PATH の値が表示される。 文章: ビット 過去には様々なビット数のバイトが使用されてきたが、今日では8ビットを1バイトとする実装が広く使用されている。ただし、バイトの大きさが基礎となるハードウェア設計に依存するという曖昧さを回避するために、8ビットであることを明示的に示す単位「オクテット」が定義されている。通常、コンピュータは、「ワード」と呼ばれる固定サイズのビットのグループ単位で操作を行う。バイトと同様に、1つのワードに含まれるビット数もハードウェア設計によって異なる。通常は8~80ビットだが、一部の専用コンピュータではさらに大きくなる。21世紀初頭において、パーソナルコンピュータやサーバコンピュータのワードサイズは32ビットまたは64ビットである。国際単位系では、基本となる単位の十進数の倍量・分量を表すSI接頭語が定義されている。これは一般的にビットやバイトに対しても適用されている。 文章: 暗証番号 金融関係ではPINは4桁の番号、つまり 0000 から 9999 であることが多い。すなわち1万種類の番号がありうる。しかし銀行によっては、同じ数字だけの番号(1111、2222など)や連続する数字(1234、2345など)や利用者の誕生日や0から始まる番号を許さない場合もある。システムにPINを入力する際、3回まで試行できることが多く、盗んだカードをブロックされずに正しいPINを入力して使える確率は0.06%である。もちろんこれは全ての番号が同じ確率で、犯人が何の情報も持っていない場合であって、かつてのPIN運用方法ではそうはいかなかった。 2002年、ケンブリッジ大学の大学院生 Piotr Zieliski と Mike Bond は、IBM製ATM IBM 3624 でのPIN生成システムのセキュリティ上の欠陥を発見した。このATMの方式はその後の装置の多くでそのまま採用されていた。その方法は decimalization table attack と呼ばれ、銀行のコンピュータシステムにアクセス可能であれば、カードのPINを平均15回の推測で特定できる。 携帯電話のPINを3回入力ミスすると、サービスオペレータが提供する個人ブロック解除コード (PUC) を入力するまでSIMカードがブロックされる。PUCを10回入力ミスすると、そのSIMカードは完全にブロックされ、新たなSIMカードに交換してもらうしかなくなる。 文章: コンピュータシステム コンピュータシステム(英:Computer System)とは、数値計算やデータ処理などを行うシステム、または制御にコンピュータを利用した制御システムの名称である。 文章: -0 現在のほぼ全てのコンピュータやプログラミング言語が採用している浮動小数点数の標準である IEEE 754 には通常の 0.0 と -0.0 がある。 コンピュータの数値表現では、補数を利用して負数を表現することが多いが、同じ補数でも基数の補数を利用した場合には負のゼロが生じないのに対し、減基数の補数を用いた場合には負のゼロが生じる。また「符号と絶対値」方式の場合にもゼロについて正と負の2つのゼロがある(前述のIEEE 754など)。 文章: HP 35s 以下は、2から69までの整数の階乗を計算するサンプルプログラムである(電卓に搭載済みの階乗とガンマ関数を無視している)。この例には、2つのバージョンが存在する。1つは ALG(中置記法)モード用であり、もう1つは RPN モード用である。RPN バージョンは ALG バージョンよりもかなり短い。ALG(中置記法)バージョン:RPN バージョン:単一のプログラムステップとして、方程式がプログラムの中に組み込まれていることがある。 この電卓の設定は、プログラム中の数式が実行中に評価される、あるいは表示されるかを指定する番号付フラグを含んでいる。 方程式はあらゆる文字列を格納することができるので、方程式は表示されるためのメッセージとして作られることがある。 文章: ゲーデル数 ゲーデル数(ゲーデルすう、英: Gdel number)は、数理論理学において何らかの形式言語のそれぞれの記号や論理式に一意に割り振られる自然数である。クルト・ゲーデルが不完全性定理の証明に用いたことから、このように呼ばれている。また、ゲーデル数を割り振ることをゲーデル数化(英: Gdel numbering)と呼ぶ。ゲーデル数のアイデアを暗に使っている例としては、コンピュータにおけるエンコードが挙げられる。 コンピュータでは何でも0と1で表し、「apple」のような文字列も0と1による数字で表す。 ゲーデル数化とは、このように文字列に数字を対応させる事を指す。ゲーデル数化は、数式におけるシンボルに数を割り当てる符号化の一種でもあり、それによって生成された自然数の列が文字列を表現する。 文章: コンピュータの数値表現 符号付きの数値の表現法はいくつか存在する。必ずしも「符号ビット」があるとは限らない。例えば、ゲタ履き表現では、ゲタの値によっては「符号ビット」としては扱えない。符号ビットがある場合は、最上位ビットが符号ビットのことが多い。なお、符号ビットについて「1なら負の数を表し、0なら正の数を表す」といったように考えるのが自然なのは「符号と絶対値」表現の場合だけであり、たとえば「2の補数」表現であれば、最上位ビットは -(2) の重みを持つ桁である、と解するのが自然である。 「符号と絶対値」表現は、1ビットの符号ビットと、絶対値を表す残りのビット群からなる。例えば、4ビットの場合で、MSBの、0が正、1が負を示すものとすると、 となる。浮動小数点数はたいていがこのような形をしている。ただし、絶対値の部分が指数部と仮数部に分かれている。 文章: ビット 例えば、transistor-transistor logic (TTL) やその互換性のある回路では、デバイスの出力 (Output) は、0が0.4ボルト (V) 以下、1が2.6ボルト (V) 以上で表される。入力 (Input) は、0.8 V以下は0、2.2 V以上は1、として認識するように設定されている。ビットは、シリアル通信では一度に1つずつ、パラレル通信では複数のビットが同時に送信される。ビット演算では、ビットを1つずつ処理する場合がある。データ転送速度は、通常、kbit/sなどビット毎秒 (bit/s)にSI接頭語をつけた単位で表され、2進接頭辞は使用されない。ジャカード織機やバベッジの解析機関などの最も初期の非電子情報処理装置では、機械的なレバーやギアの位置、または紙のカードやテープの特定の位置の穴の有無としてビットが保存されていた。 文章: パンデジタル数 0を使わないパンデジタル数では以下の2つのフリードマン数が知られている。 文章: 整数 コンピュータの内部では電気的な信号の有無を 1 と 0 に割り当て、2進法を用いて整数を表現するのが基本である。通常は、2 バイト(16 ビット)または 4 バイト(32 ビット)の範囲で表現できる範囲の数を扱う。負の値を扱う場合は、2の補数表現などが用いられる。通常は有限の範囲の整数しか扱うことができないが、処理速度を犠牲にして無限の整数を扱う方法もある。 事務処理など金額などの大きな桁や 10 進小数を正確に扱う必要がある場合、二進化十進表現を用いる。 文章: NATOフォネティックコード アルファベットを表現するために使用する単語は、本コードを採用しているどの機関でも同一だが、数字を表現するために使用する単語は二種類の系統があり、組織ごとに二つのうちからどちらを使うか選択している。NATOでは通常の英語による数字の読み、たとえば「0 = ゼロ zero」「1 = ワン one」を使用するのに対して(ただし、3は「ツリー tree」、5は「ファイフ fife」、9は「ナイナー niner」のように発音される)、IMOなどでは他の単語と組み合わせた語を使用する(0 = nadazero, 1 = unaone)。 文章: 六進法 拳を0とすれば、0から5までの六種類の数字を片手で表現できる。六進法の指数えでは、片手(主に右手)を一の位、もう片手(主に左手)を六の位として、「五六五」すなわち、三十五(55(6)=35(10))まで数える。この方法では、右手で0から5まで数えて、「左手が1」すなわち六になったら桁上がりで右手を拳に戻す。 例えば、左手が「1」と右手が「5」なら「六五」すなわち十一(15(6)=11(10))、左手が「3」で右手が「2」なら「三六二」すなわち二十(32(6)=20(10))、左手が「4」で右手が「3」なら「四六三」すなわち二十七(43(6)=27(10))を表す。 二桁で数えるので、(1)「一の位」と「六の位」、(2)「一の位」と「六分の一の位」、(3)「六分の一の位」と「三十六分の一の位」、の三種類が計算可能になり、1.1以降の小数や仮分数も表現できる。小数は0.01(十進分数1/36)から5.5(5と5/6)までをカウントできる。 前述の左手が「3」で右手が「2」なら、32(6)で「20(10)」の他に、3.2(6)で「3と1/3」、それに0.32(6)で「5/9」(=十進分数20/36)を表現できる。 「75(10)パーセント」すなわち3/4も、3/4=(27/36)10=(43/100)6から、左手が「4」と右手が「3」で0.43(6) として表現できる。 文章: ブーリアン型 COMのステータスコードとして使われる32ビット整数のHRESULT型は、ゼロを成功(S_OK)、正数を準成功(S_FALSE: 失敗ではないが否定的な状態)、負数を失敗(E_FAILなど)、とみなす。成否の判定のためにSUCCEEDED()/FAILED()マクロが用意されている。C11で標準化されたerrno_t型はゼロを正常(エラーなし)とみなす。また、比較などで「小なり」「等しい」「大なり」の3通りの意味を返したい、といった場合には、負の値・ゼロ・正の値、とするのが自然であるため、たとえば代表例の strcmp() 関数では、文字列が等しいということを示すためにゼロが返される。なお、単に「文字列が等しいか?」という比較をする場合などに、以下のように論理否定演算子!