A.マシンの数と真の値
元のコード、アンチコードおよび補体を学習する前に、コンセプトと真の価値を理解するのに必要なマシンの数。
1、機械番号
コンピュータ表現で2進数が、マシンの数は、数と呼ばれます。機体番号は、0の最も正の数、負の数を格納するために符号ビットの数と、コンピュータに、署名されます。
例えば、+3の進数は、コンピュータの語長が8ビットで、バイナリ00000011に変換されます。-3場合は10000011です。
さて、ここでは00000011だと10000011は、マシンの数です。
2、真の値
最初のものは、符号ビットがあるので、値の形式でマシンの数は、真の値と等しくないからです。上記の例では、負の最上位ビットを表す番号10000011を、署名した、その真の値は、フォーム-3値131(131 10000011に等しい小数変換)していません。符号ビットとの区別のために、そのよう機に対応した数の実際の値は、マシンの真値と呼ばれます。
例:真値= 0000 0001 +000 0001 0001 +1,1000 =真値= -1 = -0000001
II。基本的な概念と計算方法オリジナルコード、反転、相補コード。
マシンはあなたが補数を使用したい理由を模索する前に、私たちはまず、元のコードの概念を理解抗コードと番号、あなたが保存のために特定のエンコーディングを使用するコンピュータのために補完してみましょう。オリジナルコード、アンチコード補完マシンストレージ特定の番号を符号化します。
1.元のコード
元のコードは、符号ビットを加えた真の値、すなわち、残りのビットが値を表す表す最初のシンボルとの絶対値は、もし例えば8ビットのバイナリです。
[L] オリジナル = 0000 0001
[-1] オリジナル = 10000001
最初のビットは符号ビットであるので、8ビットの2進数の範囲は、第1には、符号ビットです。
[1111 1111、1111 0111]
その
[-127、127]
人間の脳のオリジナルコードは、最も容易に理解し、算出した表現です。
2.抗コード
アンチコード表現は、次のとおりです。
正反のコードは、それ自体であります
元のコードに基づいている負に反転、符号ビットを変更し、各ビットは、残りの部分に反転されます。
[L] = [00000001] オリジナル = [00000001] トランス
[-1] = [10000001] オリジナル = [11111110] トランス
可視抗コード表現が負であれば、人間の脳は、直感的にその値を見ることができない。通常、元のコードの再計算に変換します。
3.補完
補数表現は次のとおりです。
補体は、自身の正の数であります
負相補その符号ビットを変更し、元のコードに基づいており、残りのビットを反転し、最後に+1(すなわち、反転+1に基づいて)
[L] = [00000001] オリジナル = [00000001] トランス = [00000001] 補体
[-1] = [10000001] オリジナル = [11111110] トランス = [11111111] 補体
人間の脳の負の2の補数表現のためにそれを視覚的にその値は通常、その値を計算するために元のコードを変換する必要がされて表示されていません。
III。元のコードを使用して、なぜ、抗コードおよび補体
深さの調査を開始する前に、私の提案は、元のコード、アンチコード表現上の「丸暗記」を学習し、補完し、計算方法です。
今、私たちはコンピュータが結果は同じであるため、3つのエンコーディングは数3の符号化方式のための正の数を表し持つことができることを知っています:
[L] = [00000001] オリジナル = [00000001] トランス = [00000001] 補体
あまりなく、負の数のために説明する必要はありません。
[-1] = [10000001] オリジナル = [11111110] トランス = [11111111] 補体
元のコードは、直接、なぜそれがアンチのコードを持っており、それを補完するん、人間の脳を識別し、表現を計算するのに使用されているのでそれは。元のコード、アンチコードおよび補体が完全に異なっていることを示して?
まず、人間の脳は、加算および減算、我々は符号ビットに基づいて計算した場合、最初のものは符号ビットである知っている地域の真の値の減算を選択します。(ほとんどのこの資料の冒頭にある真の値の考え方)。しかし、コンピュータのことができますので、乗算器はすでに人々は、符号ビットもコンピューティングに関与している思い付いたので。私たちが知っている!コンピュータ回路設計の基礎が非常に複雑になることを明確にし、「符号ビット」を識別するためにコンピュータを設計するために最も基本的な操作できるだけ単純ですアルゴリズムが追加に等しい正の数を減算し、負の、すなわち:1-1 = 1 +機が減算加えすることができないように(-1)= 0、このようなコンピュータ操作の設計も簡単です。
そして、人々は、符号ビットの計算に関与探検し、元のコードビューの添加のみ最初の方法を保持し始めました。
0 = 1-1:小数表現を計算します
1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2
あなたが言った場合には、符号ビットも計算に関与しているので、明らかに減算のために、結果が正しくありません。内部コンピュータは、元のコードは、元のコードの数で表現されて使用していない理由です。
引き算の問題を行うには、元のコードを解決するために、そこに反転されています。
0 = 1-1:小数表現を計算します
1-1 = 1 +(-1)= 0000 0001] オリジナル +【1000 0001] オリジナル = 0001 0000] トランス +【1111 1110] トランス = [1111] トランス = 1000 0000】オリジナル = -0
人々は+0を理解し、-0が同じである。唯一の問題は、実際には「0」この特別な値に登場している。部分的な結果の真の値が正しいか、逆減算を使用して計算しますが、0に署名して下さい意味がない。そして、[0000]が存在することになる元及び[1000 0000] 元の 2つの符号化表現0。
だから、そこにシンボル0と符号化された2つの問題を解決する補足:
1-1 = 1 +(-1)= 0000 0001] オリジナル +【1000 0001] オリジナル = 0000 0001】補体 + [1111] 補 = [0000] 補 = [0000] オリジナル
そのような0 [0000 0000】で表され、何ら問題は前-0存在しないと使用することができる【1000 0000】-128を表します。
(-1)+(-127)= [1000 0001] オリジナル + [1111] オリジナル = [1111] 補 + [1000 0001】補体 = [1000 0000】補
-1-127結果は-128であるべきで、演算の結果に相補で、[1000 0000】補体は -128であるが、実際には前補体-0 -128を表すために使用しているのでよう、注意してください- 128と元のコードを表さないと反転。(元のコードを作るの-128補数表現[1000 0000]、[0000 0000]の外にある元の正しくありません)
+、元のコードまたは[-127の範囲のアンチコード表現を使用し、これはなぜ8ビットのバイナリである。2つのコードの0シンボルと問題を修復するだけでなく、最小の数よりも多くを表現するだけでなく、補体を使用127]、および使用補数表現の範囲は[-128、127]です。
32ビットのプログラミングがint型に使用されるように、マシンの補数は、範囲を示すことができるので:[-2 31は、 2 31である符号ビットは、2の補数表現で表されるので、使用される荘-1]あなたは、最小値よりも多くを保存することができます。