完全なオンライン コンピュータ サイエンス データベースとインターネット キャリア コー​​スの第 3 章の問題を最初から解決する

Wan Quannaonrain Konpyuta Saiensu Detabesutointanetto Kyaria Ko Suno Di 3 Zhangno Wen Tiwo Zui Chukara Jie Juesuru



問題とその解決策
1. -10 から +10 までの整数で数直線を描きます。

解決:









2. 8 ビットの 2 の補数で次の 2 進数を加算します: 1010102 と 11112。



解決:





3. 8 ビットの 2 の補数アプローチのみを使用して、2 進数 1010102 から 2 進数 11112 を減算します。



解決:

8 ビット 2 の補数の 101010 は 00101010 です。
1111 は 8 ビットで 00001111 です。
00001111 を 8 ビットですべて反転すると、11110000 になります。
11110000に1を加えると11110001になります。
2 の補数での減算は、次のように 2 の補数の正の数と負の数を加算することです。

1 の最後のキャリーは、2 の補数の減算で捨てられます。

5. 10 進数と 2 進数で 36,37510 を 100010 で除算し、結果を比較します。

解決:

復元除算が使用されます。
10 進数を 4 で割る:

答えは36です 10 残り 375 10

36,375 10 整数は次のように基数 2 に変換する必要があります。

下から余りを読む:36,375 10 = 1000111000010111 2

1000 10 整数は次のように基数 2 に変換する必要があります。

下から余りを読む:1000 10 = 1111101000 2

次は、1011000100110111 2 1111101000を割る 2 36,375 以降の長い除算 (除算の復元) による 10 = 1011000100110111 2 そして1000 10 = 1111101000 2 (10 ビットの 2 進除算):

被除数の最初の 10 ビットは除数より小さいため、除算は実際には被除数の 11 ビット目から始まります。答えは100100です 2 残り 101110111 2

結果を比較するには、商の整数が等しく、剰余も等しいことを示す必要があります。つまり、36 であることが示される必要があります。 10 = 100100 2 そして375 10 = 101110111 2

整数部分の場合:

残りについては、次のとおりです。

6. 選択した 8 ビットを使用して、論理 AND、OR、XOR、反転、右シフト、左シフト、右回転、および左回転を説明します。各バイトには 1 と 0 が混在している必要があります。

解決:

  1. a) ゼロの ASCII 文字の数値コードを 16 進数、2 進数、および 10 進数で記述します。
    b) ASCII 文字「1」の数値コードを 16 進数、2 進数、10 進数で記述します。
    c) ASCII 文字「A」の数値コードを 16 進数、2 進数、10 進数で記述します。
    d) ASCII 文字「a'」の数値コードを 16 進数、2 進数、10 進数で記述します。

解決:

a) 「0」: 30、00110000、48
b) 「1」: 31、00110001、49
c) 「A」: 41、001000001、65
d) 「a」: 61、001100001、97

8. 49.4910 を 2 進数に変換します。結果を IEEE 32 ビット浮動小数点形式に変換します。

解決:

フォーム 49.4910、49、および .49 は、基数 2 に異なる方法で変換されます。

変換 49:

∴ 4910 = 1100012 を最後の列の下から読み取ります。

.49 を変換:

.49 x 2 = 0.98 最初のビットは 0
.98 x 2 = 1.96 秒ビットは 1
.96 x 2 = 1.92 3 番目のビットは 1

∴.49 10 = 110 2 最後の列の先頭から読んでください。

つまり、49.49 10 = 110001.110 2

110001.110 2 = 1.10001110 × 2 +5 基数 2 の標準形式で

「1」です。 1.10001110 の仮数部は結果には示されませんが、存在すると想定されます。

指数の場合、127 10 ゼロを表します。これは、5 の指数 (累乗) を意味します。 10 2の 5 127に追加される 10 。あれは:

127 10 +5 10 = 132 10

132 10 を基数 2 に変換してから、指数のフィールドに当てはめる必要があります。

つまり、132 10 = 10000100 2

10000100 2 7ビットあります。指数は 8 ビットです。 10000100 2 は 8 ビットなので問題ありません。

49.49 10 は正であるため、符号ビットは 0 です。32 ビット浮動小数点形式では、49.49 10 = 110001.110 2 は:

0 10000100 1000111000000000000000

  1. a) IEEE 64 ビット浮動小数点形式は 32 ビット形式とどう違うのですか?
    b) 64 ビット形式が 32 ビット形式の 2 倍以上の精度であると説明される理由を 2 つ挙げてください。

解決:

  1. – 数値を表すには 32 ビットではなく 64 ビットがあります。
    – 符号ビットの後には、指数番号用の 11 ビットがあります。
    – ゼロインデックスの指数番号 (2 0 )は1023です 10 = 01111111111 2
    – 11 ビットの後には、明示的な仮数部の 52 ビットが続きます。
    – 32 ビット形式よりも広い範囲の数値が含まれます。
  2. 64 ビット形式が 32 ビット形式と比較して 2 倍以上の精度であると説明される理由は、64 ビット形式では 2 つの連続する整数によって区切られる 2 つの連続する帯分数間の間隔が、対応する 2 つの帯分数の間隔よりも小さいためです。 32ビットフォーマット間隔。また、64 ビット形式では、2 つの境界付き整数の間に発生する可能性のある帯分数の方が、対応する 32 ビット形式の場合よりも多くなります。