Cプログラミング言語の構文レビュー

10転送バイナリ進

短い区分を使用してください

元のコード、アンチコードおよび補体

コンピュータがデータ補完を格納するために使用され、なぜアンチコードの導入と、それを補完する必要がありますか?

  • オリジナルコード:符号ビットがバイナリであるとバイナリの形でデジタルコンピュータは、例えば、マシンの数と呼ばれる:番号3及び-3、00000011と10000011のバイナリ表現、それぞれ、最上位ビット、すなわち、左端の位置符号ビットであり、n 1は陰性を示し、0を表します。
  • 抗コード:、元のコードと同じ抗コード正元のコードに基づいて逆負、符号ビットを変更し、残りのビットを反転します。これは、0が1になり、1が0になる、です。
  • 補足:同じ証明書を使用してソースを補完し、負の補数は、基数に基づいて追加されます。
小数 オリジナルコード 倒立 補数
3 00000011 00000011 00000011
-3 10000011 11111100 11111101
9 00001001 00001001 00001001
-9 10001001 11110110 11110111

あなただけのことができるコンピュータが追加をやらせることができるように負の数を追加すると、正の数を引くと同等であるため、簡単に言えば抗コードの導入は、それは、コンピュータの回路設計の基礎を容易にするためです。00000000と10000000と署名0無意味です:しかし、これは、それが数0であるため、0が2つの符号化表現があるだろう、明らかにそこに欠点があります。したがって、補体の導入は、正の数を補完元のコード自体、負抗コードの補数+1です。-0進数、オリジナルコード:10000000、抗コード:11111111、補体:オーバーフローを、-128に対応します。従ってない元のコード-128および-128実際-0表現を補完することにより、このように反転されていません。これは、複数の表現0の問題を解決するだろう。しかし、また、それは、デジタル-128複数を表現する理由[-128]で表される8ビットの2進数の範囲[127]

ビット演算子

  • &ビット単位AND:計算に関与する2つの数字は、それぞれ対応する位相とバイナリのために、即ち、両方とも1であり1であり、そうでなければ0。
如9&5:
00001001
00000101
00000001  计算结果,最终为1
  • |ビット単位のOR:限り1に比べ、1が存在するように、それぞれ対応する位相、またはバイナリのために、コンピューティングに関与する2つの数字。
如4|2
00000100
00000010
00000110 计算结果,最终为6
  • ^ビット単位のXOR 2つのオペランドが関与し、それぞれ対応する位相、またはバイナリ、すなわち、それぞれ異なるデジタルに対応する1ました。
如4^2
00000100
00000010
00000110 计算结果,最终也为6

シフト操作

バイナリ全体左右移動は、左側部分の動きの欠如は0補数乗算に相当し、分割は右に相当します。十進数5 << 2。2進数で00000101 00010100 2 5 * 2の等価乗じ、2左方向に移動されます。


おすすめ

転載: www.cnblogs.com/falcon-fei/p/11060188.html