数値表現手法では、デジタル エレクトロニクスで最もよく使用される表現手法が 2 進数システムです。補数は、負の 10 進数を 2 進数で表すために使用されます。 2 進数にはさまざまな種類の補数が使用できますが、2 進数には 1 と 2 の補数が主に使用されます。指定された数値を反転するだけで、2 進数の 1 の補数を見つけることができます。たとえば、2 進数 1011001 の 1 の補数は 0100110 です。各ビットを変更 (0 から 1、1 から 0) し、最下位ビットに 1 を加算することで、2 進数の 2 の補数を求めることができます。たとえば、2 進数 1011001 の 2 の補数は (0100110)+1=0100111 です。
Javaのメインメソッド
2 進数の 1 の補数を求める場合、NOT ゲートを使用して論理回路を実装することもできます。 2進数の各ビットにNOTゲートを使用します。したがって、5 ビット 1 の補数の論理回路を実装したい場合は、5 つの NOT ゲートが使用されます。
例 1: 11010.1101
指定された数値の 1 の補数を求めるには、すべての 0 を 1 に、すべての 1 を 0 に変更します。したがって、数値 11010.1101 の 1 の補数が得られます。 00101.0010 。
例 2: 100110.1001
クイックソートアルゴリズム
指定された数値の 1 の補数を求めるには、すべての 0 を 1 に、すべての 1 を 0 に変更します。つまり、数値 100110.1001 の 1 の補数が得られます。 011001.0110 。
1の補数表
2進数 | 1の補数 |
---|---|
0000 | 1111 |
0001 | 1110 |
0010 | 1101 |
0011 | 1100 |
0100 | 1011 |
0101 | 1010 |
0110 | 1001 |
0111 | 1000 |
1000 | 0111 |
1001 | 0110 |
1010 | 0101 |
1011 | 0100 |
1100 | 0011 |
1101 | 0010 |
1110 | 0001 |
1111 | 0000 |
1の補数の使用
1 の補数は、符号付き 2 進数を表す際に重要な役割を果たします。 1 の補数の主な用途は、符号付き 2 進数を表すことです。これとは別に、加算や減算などのさまざまな算術演算を実行するためにも使用されます。
符号付き 2 進数表現では、正の数と負の数の両方を表現できます。正の数を表すためには何もする必要はありません。ただし、負の数を表すには、1 の補数技術を使用する必要があります。負の数を表すには、まず正の符号で表し、次にその 1 の補数を見つける必要があります。
正と負の数値を例に挙げて、これらの数値がどのように表現されるかを見てみましょう。
例 1: +6 と -6
リストソートJava
+6 という数字は 2 進数と同じように表現されます。両方の数値を表すために、5 ビットのレジスタを使用します。
したがって、+6 は 5 ビット レジスタでは 0 0110 として表されます。
-6 は、5 ビット レジスタでは次のように表されます。
- +6=00110
- 数値 0 0110 の 1 の補数、つまり 1 1001 を求めます。ここで、MSB は数値が負の数であることを示します。
ここで、MSB は最上位ビットを指し、LSB は最下位ビットを指します。
リナックスメイク
例 2: +120 と -120
+120という数字は2進数と同じように表現されます。両方の数値を表すには、8 ビット レジスタを使用します。
したがって、+120 は 8 ビット レジスタでは 0 1111000 として表されます。
-120 は、8 ビット レジスタでは次のように表されます。
- +120=0 1111000
- ここで、数値 0 1111000 の 1 の補数、つまり 1 0000111 を求めます。ここで、MSB は数値が負の数値であることを示します。