区別左右のオペレーティングシステムの変換_

main(  ){
   char  c= 040 ;
   printf(“%o \n",c<< 1 );
}
左はオクタル、出力0100 8に記載のバイナリ出力は、出力100にので得ること080を乗じ2に等しいです。
コンピュータは区別さ:普通の数、小数点以下は、0が先行し、0Xの16進数を先行進です。
番号0が先行発現によって構成される進数字0-7
 
ビット演算子:
1、&:ビット論理と
2、|:ビットロジックまたは
3、^:ビット単位の論理XOR
4、〜:アンチビット論理
5、>>:右
6、<<:左
 
ビット演算は、それが唯一の文字と整数の変数に適用され、その変異体、バイトまたはワードが実際の位置を検出し、またはセットシフトであり、他のタイプのデータには適用されません。
(1)論理AND演算&ルール:ときに2つの数の論理AND演算、2進数に最初の二つは、論理AND演算をする場合にのみ、両方の1ビットの同じ数である場合、結果は、そうでなければ1、及び0でした。
= 5;
B = 4。
C =%のB;
C = 4; -------------- A = 5 = 0101、B = 4 = 0100 A&B = 0100 = 4
(2)|論理OR演算規則:論理OR二つの数字、2進数に最初の二つの動作、および論理OR演算、同じビット数であれば、それらの一方が1であるように、結果1、そうでなければ0。
= 2; B = 9。
; B | C = = 2 = 0010。B = 9 = 1001、C = 1011 = 11
(3)排他的OR演算規則:ときに2つの数の排他的論理和演算、2進数に最初の二つ、及び排他的論理和演算、同じビット数の両方が異なっているだけデジタル、これは、そうでなければ1、及び0でした。
= 6、B = 8。C = A ^ B。B = 1000 = 0110; ^ 1000年= 1110 = 14 0110;
(4)抗算術論理ルール: 数が1である場合に論理反転操作番号、バイナリ、論理反転動作に最初の数は、結果が0である場合、結果が0の場合の数1。
A = 12; B =〜:12 = 1100;〜1100 = 0011 = 3

上記計算規則によれば、我々は最初の3匹の魚ああ、なぜ試験結果-13それにバイナリ12、1100は、抗ビット論理演算は、0011と比較し、結果があるべきである10進数に変換しましたか?
オリジナルああは、コンピュータに、記憶装置は、サプリメントの形で格納されたバイナリコードです。
したがって、10011であったが、これは唯一の(コンピュータにバイナリ変数bの形式で格納され、(数を表す0最初の符号ビットは、正)12が01100であるコンピュータに格納された論理演算を逆に供すなわち、フォームB)を補完するため、符号ビットが1である、負であるので、我々は最初に、即ち、反転10011に11100を変換し、その後+1を施し、その結果ので、我々は、元のコード形式を変換する必要があります11101は、-13と比べて、10進数に変換されます。したがって、B = -13。

バイナリコンピュータコード印刷の補完的な形態であります

正元のコード、アンチコードと3ヤード1を補完 

負の元のコードは、補体に変換され、符号ビット定数最後の1ビットのビット単位の値プラス

元のコードの補数の負の、補体は、に等しい  反転ポジティブ3ヤードの1

 

(5)右シフト演算規則:0または1で空いたビットを埋めるために残しました。0 1で満たされ、負、正で満たさ。注:異なる環境を充填する方法が異なっていてもよい。右下オーバーフローこのビットは廃棄されます。

= 127、バイナリ相補内部コンピュータの形式で格納されているので、その補数が01111111であるので127は、正であるので、補算術右シフト演算、動作ルールに従って、01111111バイナリに変換00011111を与えるために、依然として00011111のように、元のコードに変換され、進数31、従って、B = 31に変換されます。

テストデータの複数のセット、私たちは、このような法律を取得することができます。
新たな右シフト演算の数はnビットの数を実行したとき、得られたオペランド= / 2 ^ nです。
演算ルール左(6):埋めるためにゼロの右空いたビット位置を、左上上部オーバーフローは破棄されます。

110000001000、変換する:A = -127、バイナリ100001111111に変換され、1111.1億逆に変換され、補体111110000001に変換され、3つの左得るために、その動作を移行します反転さ:110000000111、元のコードに変換される:-1016 = Bように、-1016として、数値を10進数に変換、101111111000。
テストデータの複数のセットは、我々がパターンを取得することができる:
nビット左シフト演算の数が行われたときに新しい番号を、得られたオペランド= * 2 ^ nです。

おすすめ

転載: www.cnblogs.com/samanian/p/11391894.html