P42 過去問題 論理シフトの解き方

  • このトピックは空です。
6件の返信スレッドを表示中
  • 投稿者
    投稿
    • #1029 返信
      nobody
      ゲスト

      10進数の7は2進数では111ということは理解できます。
      シフトで並べる時、
      0111000000
      と図で並べてますが、左右の0がどのように入れているか理解できません。
      どのように考えれば良いのですか?

    • #1031 返信
      nobody
      ゲスト

      テキストの説明不足もあると思いますが、シフト演算では、先ずビット数を定義します。
      分かりやすく表現すれば、何桁の電卓を使うことにするね!ってことです。
      図では「0111000000」ではなく、「0111.000000」となっていますよ?

      先ず、シフト演算を行う上で、計算機の仕様を決めなければいけません。
      ・10ビットでシフト演算すると決めたということ。
      ・この10ビットの内、(整数部)4ビット(小数部)6ビットと決めたということ。
      これに、10進数の7を表現した時、
      (整数部)0111 ← 空欄は0で埋める
      (小数部)00000 ← 空欄は0で埋める
      以上より、「0111.000000」と表現されたということです。
      この過程の説明がないので、分かりずらいのだと思います。

      そして、除算は右シフトなので、
      2の-5乗で、5ビット右シフトということです。

    • #1034 返信
      nobody
      ゲスト

      【補足】
      図では「0111000000」ではなく、「0111.000000」となっています
      →小数点は、分かりやすいように書かれているだけであって、実際にビットに格納されている訳はないことに注意
      ※小数点の位置を固定していることから「固定小数表現」とも呼ばれます。
      ※一方で、有効数字の表現で用いられる「浮動小数表現」というものもあります。例)1.11×2の5乗

    • #1038 返信
      nobody
      ゲスト

      重要な小数点の記載漏れ失礼しました。
      よく理解できました。お忙しいところ迅速なご回答ありがとうございました。

    • #1039 返信
      nobody
      ゲスト

      申し訳ございません。念の為お伺いさせてください。
      7÷32が0111となるため、
      ずらす前の整数部が0111となる理解で良いでしょうか?
      整数部を4ビットとしたのがなぜかいまいち理解できないです。

    • #1040 返信
      nobody
      ゲスト

      前の回答者さんとは別の者です。

      この過去問題のようにビット数に指定がない場合や、P45の問題1-7、問題1-8のように「桁あふれがない」という場合は、ビット数はいくつでもよく、好きなだけ増やして大丈夫です。
      極端な話、
      000000111.00000000000
      とかでも大丈夫です。

      7÷32ではなく、7の2進数が111ですね。
      割り算の場合、右にシフトをしますが、「111」のままだと何個ぶんシフトしたかわかりにくいです。
      そこで、小数点以下に多めに0を付けておいて、
      32の2進数が2の5乗 → 割り算をするので「2の-5乗を掛ける」→ 右に5つシフトする
      ということから、「1」の数字を5個ぶんずつ右にずらします。

      • #1041 返信
        nobody
        ゲスト

        結論として、整数部は4ビット「0111」でなく、3ビット「111」でも問題ないです。

        10進数で、
        「4月1日」を「04月01日」と書いたり、
        「62.1kg」を「62.10kg」と書いたりするように、
        2進数でも、整数部の左や小数部の右に0を付け加えても数の大きさは変わりません。
        必要に応じて、必要なだけ0を付けて考えます。

    • #1042 返信
      nobody
      ゲスト

      早速ご回答ありがとうございます!初歩的な質問にも関わらず、ご丁寧に解説していただき感謝します。

6件の返信スレッドを表示中
返信先: P42 過去問題 論理シフトの解き方で#1041に返信


<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">