検証を補完

小数は、16進数を表す印刷します

する#include <stdio.hの> int型のmain(int型 ARGC、チャーCONST * ARGV [])
{ // 1つのバイト数、16進数、2
     // 1000 0001 = 0x81と
     // 2進、8進、16角度ヘクスは補完すると考えられているコンピュータ、必要チャー A = 0x81とを; 
    のprintf(" Dを=%\ N- "、A); // -127 戻り0 ; 
}

 
    
    
     

次のような理由から、-127を10進数に出力81進数:

以下の通り、すなわち0001 1000バイナリ、及び元のコードの出力補数形式の81の値であり、変数a = 0x81とは、-127、1111 1111バイナリ表現であり、中間処理です。

(負)オリジナルコードの2の補数に応じて1:

1)最上位ビットの符号、他のビットのバイナリ値(元のコード)

2)1に基づいて)、符号ビット不変に基づいて、他のビットが反転されます

3)2の補数)を加え1に基づいていました

図2に示すように、元の要求コード補数、2の補数と同じ手順に従ってこと

1)2の補数

2)1に基づいて)、符号ビット不変に基づいて、他のビットが反転されます

3)2の補数)を加え1に基づいていました

上記0x81との補数はそれが負の数であり、最上位ビットが1である、10000001を補完します。

1111 1110は、それが元のコード1111 1111に1を加えた後、反転し、符号ビットは、最大値で残りの7 1、すなわち127、-127プラス記号が含まれていません

したがって、最終的な出力は-127です。

重要な点は次のとおりです。

元のコードを、ユーザの観点から、遠近の問題を小数を見ます

角度を補完するために、問題を考えるために、ビューのコンピュータポイントに立って、2進数、8進数、16進数を参照してください。

おすすめ

転載: www.cnblogs.com/jixiaohua/p/11073711.html