令和2年度技術士第一次試験問題[基礎科目:情報・論理]1-2-4

定義式より、(ア)は$ 2^6 – (100110)_2=(1000000)_2 – (100110)_2 =(011010)_2$

(イ)は$ (2^6-1) – (100110)_2=(1000000)_2-1 – (100110)_2 =(011001)_2$

[解答:②]

もっと知るには・・・

 

補数とは

補数(ほすう)とは、特定の数値に対して加えることで、指定された基数(例えば10進数や2進数)の桁の限界に達する数を表します。補数は、計算やデジタルコンピュータでの数値表現の際に、減算を加算として扱うためなどに使われる重要な概念です。

### 1. 補数の種類
補数には主に2種類あります:

– **nの補数(真の補数)**
– **n-1の補数(減じた補数)**

たとえば、10進数や2進数での補数を見ていきましょう。

### 2. 10進数における補数
10進数の補数を使うと、例えば「引き算」を「足し算」に置き換えることができるため、計算が簡単になります。

– **10の補数**
ある数 \( X \) に対する10の補数は、\( 10^k – X \) で表されます(\( k \) は桁数)。例えば、3桁の数「123」に対する10の補数は、\( 1000 – 123 = 877 \) です。

– **9の補数**
ある数 \( X \) に対する9の補数は、\( 10^k – 1 – X \) で表されます。例えば、3桁の数「123」に対する9の補数は、\( 999 – 123 = 876 \) です。

### 3. 2進数における補数
デジタルコンピュータでは、2進数での補数(特に「2の補数」)がよく使われます。

– **2の補数**
ある数に対する2の補数は、全てのビットを反転(0を1に、1を0に)して、最後に1を加えることで求めます。たとえば、4ビットの数「0101」に対する2の補数は、ビット反転後「1010」に1を加えて「1011」となります。

– **1の補数**
ある数に対する1の補数は、全てのビットを単に反転するだけで求められます。例えば、「0101」の1の補数は「1010」です。

### 4. 補数の利用例
– **引き算の代替としての利用**:
コンピュータでは、引き算を行う際に補数を使って加算で引き算を実現します。例えば、\( A – B \) は \( A + (-B) \) として計算され、ここで \( -B \) は \( B \) の補数として表されます。

– **負の数の表現**:
コンピュータの2進数表現では、負の数を表すために2の補数が利用されます。例えば、4ビットで「-3」を表す場合、「3」の2の補数「1101」として表現されます。

まとめ
補数は、ある基数(例えば10進数や2進数)に基づいて数値を反転させることで、計算の簡素化や負の数の表現に使われる数値です。特にコンピュータでは、2進数の2の補数が頻繁に使われ、減算の実装や負数の表現に役立っています。

2の補数を利用すると負の数が表せるのですか?

はい、2の補数を利用すると、コンピュータでは負の数を表すことができます。実際、2進数の2の補数表現は、負の数を表現するための標準的な方法です。以下で、その仕組みについて詳しく説明します。

### 1. 2の補数による負数の表現
2の補数を使うと、正の数と負の数を同じビット列で表現することができます。例えば、8ビットの2進数で考えてみましょう。8ビットの2進数で表せる範囲は、通常「0〜255」ですが、2の補数表現を用いると、「-128〜127」として負の数も表現可能になります。

#### 具体例
– **正の数の表現**
正の数は、そのままの2進数で表現されます。例えば、「5」は 8ビットで「00000101」となります。

– **負の数の表現(例:-5)**
負の数は、その絶対値に対して2の補数をとることで表現されます。
1. まず「5」の2進数表現を取得します(「00000101」)。
2. ビットを反転します(「11111010」)。
3. 1を加えます(「11111010」+ 1 = 「11111011」)。

これにより、「11111011」が「-5」を表す2進数の表現になります。

### 2. なぜ2の補数が負数表現に適しているのか?
2の補数を使うと、負の数を表現する際にいくつかの便利な性質があります。

– **加減算が容易**:
2の補数を使うことで、減算を加算に置き換えることができます。たとえば、「7 – 5」を計算する代わりに、「7 + (-5)」を計算できます。「-5」を2の補数で表しているため、通常の加算回路で正しく計算できます。

– **ゼロが一意に表現される**:
2の補数表現では、「00000000」が「0」を表し、負のゼロが存在しません。これにより、計算がシンプルになります。

– **最大値と最小値の範囲が対称に近い**:
8ビットの2の補数表現では、「-128〜127」という範囲を取るため、正の数と負の数がほぼ対称に表現されます。

### 3. 2の補数を用いた数値範囲の例
ビット数が増えるごとに表現できる範囲は次のように広がります。

– **8ビット**:-128 〜 127
– **16ビット**:-32768 〜 32767
– **32ビット**:-2147483648 〜 2147483647

このように、2の補数表現を利用することで、コンピュータはビット列だけで負の数を含む整数の範囲を表現できるようになります。

### まとめ
2の補数は、コンピュータが負の数を表現するための標準的な方法であり、加減算の効率化や符号の一意性など、多くの利点があります。このため、現代のコンピュータシステムでは2の補数が負数表現に広く採用されています。

おすすめ参考書

amazon 楽天

■資格取得に関してのおすすめ記事

資格取得のその先… まず第一に「資格」自体取得したところであまり意味をなしません。資格取得はゴールではなく稼ぐための手段なのです
学歴・資金・資格なしでも人生を一発逆転できる方法とは
仕事で成果を上げるために必要な2つの「仕事の構造化」と「仕事のシステム化」について