元のコード、アンチコード及び補体(再版)

抜粋します。https://blog.csdn.net/zhiwen_a/article/details/81192087
学習を容易にするための

本論文では、元のコードから始めます。元のコードによって簡単に、そして抗効果の存在、補体のより良い理解を補完します。逆プラス1に等しい負の補数:そして、あなたは概念がもはやに限定されている補完しないことができるように努めています。

コンピュータや電子情報関連コースの学生は、多かれ少なかれ、この兄弟Saのを補完するのを見ているは​​ず問い合わせ ほとんどの教科書の前に、これまで数ページの中の各タイム:元のコードが反転符号ビット、ビット単位に加えて、どのようなものです。それは逆補数プラス1に等しいです。そして、何とか全体を取得するには、不思議なことに、コンテンツとにかく後ろに、あまり3ヤードで行うには、ページが続きます。

私も何回かは理解していなかった、それを読んでいました。古いことわざ:Shibuguosan。私はC言語を学ぶとき、一度お読みください。〜を理解していませんか?ルック、とき、読み取りの「基本的なコンピュータの構成原理」、または知りません!ジュニア年、「シングルチップマイコンの原理とインターフェイス技術は、」私はまだ理解していません。期間の終わり、レビュー、および人々Xialiaoの4分の3に。うんこれらのコードについて何かを言う、私は非常に明確な方法はないと述べました。そして、どのように需要側ヤード、サイド・カウント言います。演奏を再生、突然、私は理解しています。私が停止に来る、よく言いました。私はこの量があり、順番に良いアイデアを残して、言ってはいけません。ディスカッションスレッドは、それを数えます。

まあ、騒ぎ。私たちは、元のコード、アンチコード補完の旅を始めました。

(A)前置き

バイナリ、16進数を知っています。操作の相互変換は、バイナリと小数になります

コンピュータのハードウェア、本質的にバイナリコード記憶されているコンピュータに格納されているデータによって決定されます。

古典コンピュータ〜ノイマンアウトシステムのフレーム構造。オペレータは、コントローラ、メモリ、入出力デバイスによってコンピュータ。ここで、オペレータ、だけ加算、減算ないオペレータ(初めがあり、以降減算ハードウェアのコストなどすぎ、廃止されたと言われています)

したがって、コンピュータは、それが添加することによって達成され、直接引き算、減算を行うことはできませんあなたは現実の世界では、すべての減算は加算とすることができ、言うかもしれないが、マイナスの数は、この数を加えるの反対として見ることができます。もちろんはい、しかし前提条件は、負の数の概念を持つことです。符号ビットは気を導入しなければならなかった理由です。

そして、ハードウェアの観点から、唯一の正プラスマイナス減算とみなされます
正、負の加算負の正数を加算し、実際に、それは直接加算器によって加算することができます。
元のコード、アンチコード生成プロセスの補数は、解決することであり、コンピュータの導入は、(プラスおよびマイナス)問題減算符号ビットを行います。

この記事では、かなり長い突然のすべてを読んでする必要はありません。元のコード、抗コード、補数は、章で読み取ります。
補完するために強調話すの補数は、いくつかの周りでもよく、それはペンで推奨され、オペレータとの2進数を書きます。

式は明確で厳格ではないかもしれない、私を許して願っています。

(B)元のコード

オリジナルコードは:マシンの数の最も簡単な表現です。シンボルビットは、最上位ビットで表される「1」の意味負の数を、「0」の正の数を表します他のビットは、バイナリ数の絶対値を格納します。

4ビットの符号付きバイナリ例に数に関して

1010: '010'として'1'の最上位ビット、これは負の数であることを示す他の三
すなわち、(0 2 2)+(1 2 * 1)+(0 2 0)= 2( ' '累乗を表します文字)
1010は小数点数を(-2)を表すようになります。
次の図に示す元のコードの正と負の部分進数表現の数
ここに画像を挿入説明

OK、元のコードは** ** + 0と-0にもかかわらず、そこに非常にシンプルな表現ですが、直感的。
だから、私たちは、事業を開始するために喜んでいます。

+ 0010 = 0001 0011(= 2 + 1 3)OK
0000 + 1000年= 1000(+0 +( - 0)= - 0)量、問題ではない
= 1010 0001 + 1001(1 +( - 1)= - 2 )
ああ、1 +( - 1)= - 2、それは私をからかったとして。

私たちが実際に正の数との間の付加を見ることができるように、それは非常に単純な2進加算であるため、通常は、間違って行くことはできません。

正と負、または負と負の合計を追加し、結果は何とか符号ビットいまいましいによるものである、誘導しなければなりません。0は0を分割-0とも彼のために空の。

したがって、元のコード、直感的であるが、簡単に正の変換。しかし、言葉の加算と減算を達成するために、操作のルールは常に複雑すぎます。抗コードので。

(C)抗コード

我々はことを知っている最大の問題は、元のコードの数を加えた彼の反対の数がゼロではないということです

例えば:0001 + 1001 = 1010(1 +( - 1)= - 2)0010 + 1010 = 1100(2 +( - 2)= --4)

負が反対の数の正の数であるので、だから、反転のデザインコンセプトは、その後、我々は単にビット単位で**否定を表現しようとする正の数を使用して、**これを解決に向けられています。

抗コード:陽性抗コードまたは元のコードに等しい
負抗コードは、符号ビット、ビット単位に加えて、彼の元のコードです。

例えば、署名された4つのバイナリビットの数の観点から:

図3は、正の数、反転オリジナルコードは0011」であってもよいし、同じである
符号ビットは変更されないまま、-3 1011が元のコードであり、低い3(011)ビット単位で(100)を得た
反転よう-3 1100は
、図2進数でアンチコードの正と負の部分の数を与えます

ここに画像を挿入説明

図の前で、私たちは、その後、元のコードに関する問題を解決するために、反転の方法を使用するようにしてください

+ 1110 = 1111 0001(1 +( - 1)= - 0)

和は、互いに0、溶液の反対に等しいです。結果は1111年ですが、ある-0

まあ、我々は2つの負の合計をやろうよ

1110(-1)1101(-2)= 1011(-4)

ああ、新たな問題があるようです

(-1)+( - 2)=( - 4)?

しかし、それは1011年以来、大きな問題と思われる(-4抗コードが、ビューの原点からのコードは、彼が実際に-3。偶然でしょうか?)

我々はそれの例を見て

1110(-1)1100(-3)= 1010(-5)

確かに偶然、問題の反対が解決されるようだが、それは2個の負の数値を間違ったの合計を置きます。

しかし実際には、実際には2つの負サムエラーではない大きな問題。我々は振り返ると私たちの目的は何だと思いますか?カウントに加えとして減算は、減算の問題を解決することです。

実際には、追加することにより、2つの正と一緒に2つの負の数値は、符号がベールをビットかどうかをさらに問題ですが、。正+負の実引き算の問題。

限り正+の負の番号が間違って行くことができないようであること、そして、問題はありません。マイナスプラスマイナスの誤差が問題で、負の性質は、正のみプラス符号ビットではありません。

2つの負の数を加算し、元のコード表記で、実際には、場合の結果は、符号ビットエラーのみ(+ 1010 = 0011 1001)でないオーバーフロー

反転マイナスサムエラー、実際には、大きな問題ではありません。その上に「1」に強制的にビット我々は唯一の2つの負の符号がすべて加算されたビット単位を含んでビット反転、負に2個の加算器を実現するために追加し、彼に印を与える必要があります。

アンチコード表現が既に減算の問題を解決しているので、彼は2つの反対の数値の場合は表示されないだけでなく、元のコード等が、また正プラス負の数のいずれかのためのゼロではない、例えば:
0001(1) 1101(-2)= 1110(-1)を計算した結果が正しいです。だから、元のコード、引き算の問題を解決するための最大の利点の嘘に比べて反転。

なぜ-0 + 1110 = 1111 0001( - - 1)= 0を1 +()はなぜ、しかし、我々は満足していません

そして、2つの負の問題を追加していないが、ではなく、大きな問題はなく、道の問題。まあ、乙女座。そして、私たちは大きなボス補数をご紹介します。

(IV)の補数

補体:補正の数は、彼の元のコードに等しい
+1に等しい負抗コード補完。

(これは単なる一方通行の補数演算子であり、この文を補完するために、本の大多数です)

「コンピュータの構成の原則」、補完という別のアルゴリズムで

負の補数が変わらない彼のローからハイに元のコード、「1」の最初のエンディングと右の「0」に等しい、符号が変わらないビット、あなたはビット単位の左。

OK、それが終わっ補完します。さようなら!

どういうわけか、まだそこに、なぜローからハイに否定、なぜアンチコード補完に等しいプラス1 ...?

実際には、2つの段落以上、そして、私たちは発見のための補完方法ではなく、補完定義されたコードです。多くの人々は、我々が最初ではない、本当に、補完ネゲートコードを求めなければならないと思います。

これらの鶏泥棒のコンピューター科学者ではなく、逆+1の気まぐれを補完するものとして定義されます。抗コードプラス1ベールを補完するだけでまったく同じ。

だから、この本はその逆の1に等しいものをネガティブフレーズ補数を忘れます。この文は、理解の誤りに私たちがかかります。

それから私は、具体的補完、抗コードリピートについて話をし、私は本、「コンピュータの構成の原則」を参照してください理由です実現しました。

そして、負の補数がローからハイに彼の元のコードに等しいと述べ、「1」の最初のエンディングと右の「0」記号がそのままビット、あなたはビット単位の左、変わりません。

しかし、上記のフレーズは、同じコードは、それが発見するための別の方法のほんの補数である、補完を定義されていません。それはあります、それは必要ありません、私たちは「+1逆」いまいましいフレーズを忘れて教えてください。

あなたは厳格な引数を補完し、学習に興味があるなら、私はあなたが見ることができることを示唆している「コンピュータの構成の原則。」それは、ダイ "コンセプト「合同」で、厳密に解釈補数を使用します。

次に、私はアイデアを補完するためにお話したいと思います。

思想(e)の補数

思想の補数は、最初にかなりの周りに表示さを感じるかもしれませんが、あなたが停止し、それについて考えることを喜んでいる場合、彼らは間違いなく素晴らしいと感じます。

生活から実際の補数と思ったが、我々はそれに気づきませんでした。時計、緯度、経度、ゴシップの「易経」。

実際には、それは、補同様の生活クロックを考えています

アナロジーは、すべての後に、ではない事自体であるので、まあ、私は実際には、この言葉のように、同様のを望んでいません。そして、私はハハ、あまりにも厳しい好きなことができれば、私は、厳格なエンジニアリングの僧侶ではないだということを疑うことはありません。

今ならば時間は現在10時に駐車されているので、クロックは8時にそれを停止したとき?

それは8時で二時間おき過去の単純な、。次の10時間の時間をかけて、それは8時でした

10時間、または2時間であることそれはさておき時間が戻って8時位置の脇に設定されています。

すなわち、10-2 = 8、+ 8 = 10 10(10 + 10 = 10 + 8 + 2 + 8 = 12 = 8)

彼らはわずか8時にクロックを停止して12時間フルに行くために2周目では、この時点での説明、およびは、8時間を行ってきました。

12したがって、ダイ12と呼ばれるクロック動作は、再び1から始まる計算を超えること。

それは別の観点から、10-2と10 + 10であるが、それは8時まで時針ポインティングを行います、等価です。

それはさらに数を追加することと同じ実際の数値を、減算、クロック動作と同等であるので(この数は正確にも合同の数と呼ばれる、和及び減算12に等しいです)

これは人生の例は、いわゆるモジュラー算術アイデアを補完しています

ここでは、元のコード、アンチコードおよび導入を補完するには問題減算を行うを解決することで再強調しています。元のコード、アンチコード表現では、我々は、加算に減算がマイナス数であり、数は数に等しいプラス逆考え、及び符号ビットを導入することを見出したが、記号は、以下のすべての処分が発生よりも少しため質問。

しかし、上記の例から、我々は、実際に数値を減算見ることができ、動作(モジュラ算術)オーバーフローと、値には限界があり、実際には、この数の等価プラス合同の数。

言い換えれば、我々はあなたがカウントに加えて減算を置くことができ、負の数の概念を導入していません。だから、算術4ビットのバイナリ数についての話を聞かせて、符号ビットを導入するために急いではありません。またとして減算が符号ビットを導入する必要がなく、補体の考えからです。

そして、私たちは、次の例を使用することができ、負の符号ビットが正の符号ビットの数が「1」であるのではなく、「1」である理由、別の質問に答えることができるかもしれません。

補体(VI)実施例

まあ、我々は右の減算を4進数を行う(符号ビットを最初に導入していません)

0110(6)-0010(2)= 4 [コンピュータは減算器を有していないので、6-2、しかし、我々は数えることができません]

今回、我々はクロック動作を考えて、マイナスの数は、(残り)別の正の数を追加することに相当します

だから、この番号は、それは何ですか?クロック動作から、我々は数は合計がモジュラスの減少と正確に一致していることがわかります。

そして、アナログ4進数はどのくらいですか?それは4進数の最大容量はどのくらいあるのですか?実際に、それは2 ^ 4 = 16 = 10000Bであります

残り2となるように、手段1110 10000から0010(14)

ケースということ

0110(6)-0010(2)= 0110(6)1110(14)= 10100(+ 4 20 = 16)

OK、我々は4ビットを下げた場合、正確に0100(4)であることを起こる、我々は、このアルゴリズムである10100で得られた結果を見てきたが、4進数のために、最大で4つだけ(ハード決定)を保持することができます私たちは、「1」の最上位ビットとして、コンピュータは、PSWレジスタのビットに彼を運ぶでしょう、結果が欲しいです。8台のマシンはCYに配置されます、x86のは(私たちは議論しないであろう)、CFに配置されます

今回は、4進数で考えてみる、マイナス2、それに加えて(彼らは一致している理由として、「コンピュータの構成の原則」を参照することをお勧めします)同じ数以上の14に相当します

しかし、別の観点から2を差し引くだけでなく、(-2)を加えます。すなわち、プラス(-2)14と実際のキャリービットに加えて、得られた二つの結果を加算し、結果は同じです。

我々は1110年(14)を挿入した場合、最上位ビットが負の符号ビットではなく、「0」の「1」である理由であってもよい符号ビット(-2)補数であるとみなされます

しかし、また、シンボルの4つのバイナリビットしか表すことができた「-8 7」、何のア​​クションシンボル長(14)と符号付き数(-2)は、実際に同じ効果ではありません。

その正はそれを補完しますか?正の数の加算、加算器が直接実装されてもよいです。だから、それはまだ、独自のを補完します。

次の図に示す4つのビットのバイナリ補数表記を締結します

ここでは、元のコードの問題は、抗コードとは、基本的に解決補完することがわかります。

1000によって表されるように補完コードには負のゼロは、ありません-8

減算、0001(1)1111(-1)= 0000の場合これは、上記図の補数の下で
、我々は0を表し、所定にそれを置くために負1000を必要としない-8

(-1)1110(-2)= 1101(-3)負1111追加することによって問題を負とも解決

それは周りのビットを置いてもよいが、それは方法はありません。実は、私はあなたにもこの絵を補完することができると思います。

非常に美しいが、あなたは地理の教科書を考える場合、0は本初子午線と等価ではない、-8°180ではない、西に正の数と同等ながら、負の数は、経度と等価です。

(VII)なぜそのようつの2

その後、我々は、抗コード+1を計算するなぜなぜ負の補完方法を見て

負の逆符号の絶対値のでプラスマイナスのは、数二つの供給4つのアナログ正確1000である、1111に等しい、プラス1であります

ネガは、その絶対値を補完彼の充填を得るために、陰型を減算することによって合同の数、絶対値です。

だから、負の補数は、その逆の1です。

それの少し周り、唯一のあなたはまだ数学の権利を行うことが困難であることが明らかに十分に考えることができます。私は上記の別の方法があります。

次に、私は自分自身が補体のヒントを数えについて言わなければなりません。
ここに画像を挿入説明
その上図をご覧ください。

我々は、もし-8負としての原点。その後、-5補数はどのくらいですか?

+ 3 = -8 -5
-5 -8補体プラスの相補体である3

1000(-8)0011(3)= 1011(-5)
口が補体-5 1011を算出することができるように

もちろん、あなたも覚えて-1補数を減算演算子1111を取得します

その後、8個の加算器の場合、あなたは-128起源を補完することができますよう。とき16 -32768起源を補完することができます。

はい、128は半分である(アナログ二進数ビット)ハーフ32768 65536(2 16にモード番号)256

そこも非常に便利ですが、シンプルにはい

原点補数最上位ビットは常に「1」で、他のビットが「0」であります

シンプルなので、いつでも追加ポート演算子を行うことができます。

ここで最後に[OK]を、元のコード、アンチコード補完の旅。最初の外観は、常に、周りに感じ欠けているのを恐れて簡潔に、欲しい補完します。慎重に話す、私はあなたがさえ冗長な感じを助けることはできません。謝ビュー!

著者:
リンクします。https://www.imooc.com/article/16813 BLOCK_ID = tuijian_wz?
出典:ムークラスのネットワーク
、元のMu-クラスのネットワークに掲載された記事、ソースを明記してください、ありがとうございました

これらは、記事の内容です。

この記事や他のオンライン学習教材を参考に、より良いオリジナルコード、抗コードを理解し、原則とアプリケーションを補完します。この本はもっと権威の説明があり、「コンピュータの原理が構成」が、理解するのがより難しいかもしれないことに留意すべきです。

公開された24元の記事 ウォン称賛25 ビュー4103

おすすめ

転載: blog.csdn.net/qq_44972915/article/details/104436511