2. 第 2 章 - データの表現と操作
1. 桁上げ方式(2進数、10進数)
2.BCDコード(残り3コード、2421コード)
エンコーディング |
関数 |
利点 |
短所 |
BCDコード |
各 10 進数を4ビットのバイナリ コードに変換します |
高精度で、デジタル管やLEDなどの表示デバイスでの直接使用に適しています。 |
エンコード長が長く、ストレージ容量を多く消費し、動作速度が遅い |
3ヤード以上 |
各 10 進数を3桁の 2 進数コードに変換します |
BCDコードに比べてコード長が短く、記憶容量が比較的小さい |
操作が複雑、実装が難しく、精度が低い |
2421ヤード |
各 10 進数をそれぞれ2桁、4桁、2桁、1桁のバイナリ コードに変換します。 |
エンコード長が短いため、占有されるストレージ容量を削減できます。 |
操作が複雑、実装が難しく、精度が低い |
3. 元コード、逆コード、補コード
加算でも減算でも、値は2の補数に変換されて演算されます。
補数 - (符号ビット) が演算に関与します 。!!——
3、定点小数
元のコードの範囲は1.111 1111 ~0.111 1111 、つまり-127/128から127/128
の範囲は1.000 0000~0.111 1111 、つまり-127/128から127/128の範囲は1.000
です。 0000~0.111 1111 、つまり-1から127/128
なぜ最小値が -1 なのかというと、これは 10 進数だからです。小数点は-1〜
(1.0000000) 元のコード = (1.0000000) 補数コード = (1.0000000) 補数コード = -1
-1.0の元のコードは、純粋な 10 進数の元のコードでは数式を表現できません。
-1.0 の元のコードを取得できません
ただし、純粋な 10 進数の補数表現式を通じて -1.0 の補数を取得できます。
[-1.0]補数=2+(-1.0)=1.000 0000
3. 有効性 (パリティコード - 1 を参照)
不十分:
奇数個のエラーのみを検出できます。!!(偶数個のエラービットがある場合、検出されません)
エラー検出のみに使用でき、エラー修正には使用できません。!!
利点:
この回路は実装が簡単です - XOR 回路を使用すると、1 の数を決定できます。
1の合計は偶数です - XOR の結果は 0 です (結果は XOR テーブルから確認できます。0 XOR 1 の場合、1 になります)
4. 算術論理演算装置 (ALU)
(1) 1 つの全加算器 (FA - 全加算器)
入力: 2 つの数値 (0 / 1)、下位ビットのキャリー
出力:キャリー信号、出力カウント(0/1)
2 AND ゲート、2 XOR ゲート、1 OR ゲート
カプセル化: n 個の 1 ビット全加算器で n ビット加算器 (シリアル加算器) を形成できます - カプセル化後、データを直接入力でき、対応する結果を得ることができます - 関数のアイデア - 車輪の再発明を回避します (思考 - 自己を理解する)最適化 - 改造!!!)
(2) 並列加算器
(3) まとめ
(4) 並列加算器(プラス)
利点: 並列実行、結果はほぼ同時に生成されます (結局のところ、ハードウェアの速度は想像を超えています)
欠点: ビット数が増えるほど、ハードウェア回路が複雑になります。!-- 高コスト
最適化: 4 ビット + 4 ビット (スタックアップしない)
(5) 相補加減算演算子(-フラグビットを含む)
加算と減算 - 適用可能 - 符号なし + 偶然の一致 (すべて適用可能!!!)
初級 (オーバーフローします - 問題があります!!!)
拡張バージョン - オーバーフローを解決するために 4 つのフラグ (フラグ ビット) を追加 - キャリーとボロー (符号なし排他的)
5. 固定小数点数のシフト演算(ちょっと簡単)
6. オリジナルコード - 乗算
(1) 1ビット乗算
(1) 手計算(小数と整数 - 同様)
7. 元のコード - 分割
回復剰余法
改善されました - なぜなら、あなたがネガティブなときだからです。そうすれば、左にシフトする必要があるので、分割することができます。!!
加算と減算の代替メソッド (剰余メソッドは復元されませんが、最後のステップは復元する必要があります)
知らせ:
(左シフト) は (加算と減算の回数) より 1 少ないです。
(加減算回数): (n+1) || (n+2)
(除数) は (配当) より小さくなければなりません。そうでない場合は、最初のステップで終了します。
(配当減算が0未満のため)
(したがって、固定小数点 10 進除算では、除数が被除数より大きい計算を表現できません!!!)
8. 補数 - 除算
訂正: 約数は11.0101です
9. データの保存と配置(ビッグエンディアンとリトルエンディアン)
(1) 境界アライメント(時空間バイト変換)
10. 浮動小数点数表現(難点※※※※※※)
科学的記数法 - 表現
浮動小数点数 - 表現方法
(1) 正規化
2^5 : 304.231 —— 右ゲージ —— 2^7 : 3.042 (小数点は移動せず、仮数部は右に移動します)
2^5 : 0.00123 —— 左ゲージ —— 2^3 : 0.123 (小数点は移動せず、仮数部は左に移動します)
利点 - 集中的な読書の増加 (無効な 0 の位置を回避)
欠点—指数コードの範囲を超える場合、指数コードの番号を変更する必要がありますか? ? ? ?
賢いポイント: オーバーフローを防ぐために二重符号ビットを使用します。
テストされていない点 - 正規化 - 表現できない数値がある - 表現
(2) 標準化された機能
上記には間違いがあります: 3 ビット左にシフトした後、次のようになります: 1.0100 000
(3) まとめ
11、IEEE(アイトリプルイー)
(1) フレームシフト
(2) フォーカス(範囲表示、換算)
知らせ:
注文コード - すべて 0、すべて 1 には特別な目的があります
真の値 = フレームシフト – オフセット
2進数(本体表示)-10進数-相互変換!!!
12. 浮動小数点数の演算
(1) 10進数
(2) 2値計算
(3) [0丸め1方式]と[定数設定1方式]
(4) 必須の型変換
知らせ:
いつ起こるか: コンロス、オーバーフロー
(5) まとめ