• ベストアンサー

コンピュータの原理の質問

(1)コンピュータ内部で減算が加算によって行われていますが、その原理を教えて下さい。 (2)キーボードから「2347-2008」と入力された場合、ディスプレイに演算結果が340と表示されますがその過程を教えて下さい。  以上です。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

(1) 2進表現なので、2の補数(ある数に何かを足すと2のn乗になるような数 はお互いに2の補数です)を使ってますが、10進数なら10の補数での計算と同じことです。 9-3=9+7の桁上げを無視して=6 9-6=9+4の桁上げを無視して=3 (2) 普通はそうなるとは限らない。ソフトによる。 (1)のレベルから説明するとなると高校生レベルで、20時間は必要でしょう。

natureowl
質問者

お礼

解答有り難うございます。 (2)の質問ですが、16進8桁で説明せよという問題ですが、どのように考えたら宜しいでしょうか。

その他の回答 (3)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.4

(1) http://okwave.jp/qa4175997.html の私の過去の回答 ANo.2とANo.4 (2) 理解しようとしないまま何かの課題を丸投げしてみたって感じでしょうか。自分で考えてみたのなら,2347-2008≠340 だってすぐ気づきますよね。 おそらく,キーボードとかディスプレイというのは初心者にイメージしてもらうための付け足しであって,2の補数を使って「2048-2008=340」という計算を説明せよ,というのが主眼ではないかな,と思いました。 丸投げ課題への丸投げ解答は好ましくないので過程を説明しておきます。どうぞご自身で計算なさってください。 (a) 10進数(2348)を 32ビット長の2進数で表記しなさい。 (b) 10進数(2008)を 32ビット長の2進数で表記しなさい。 (c) (b)のビット0/1を反転させた後,+1しなさい。   これが(b)の2の補数であり,10進数では(-2008)になります。 (d) (a)と(c)を加算した結果を表記しなさい。 16進数8桁で説明せよというのなら,以上の2進数をすべて16進数で表記すればよいわけです。

natureowl
質問者

お礼

早速の解答有り難うございました。 大変よく理解できました。

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.2

(1)はすでに回答をいただいているので省略。 (2)どの程度まで細かく説明をご希望でしょうか。 場合によっては数時間コースの説明にもなってしまいますが… おおざっぱに  入力→処理→出力 が基本的な動作です。 細かくいくと  キーが押される→スイッチが通電する→キーボードの中にあるコントローラから対応したキーコードをコンピュータ本体へ伝える… となっちゃいます。

natureowl
質問者

お礼

早速のご回答ありがとうございます。 (2)の問題ですが、これは16進8桁で説明しなさいという問題ですが、是非、解答を教えて頂ければ幸いです。宜しくお願い致します。

  • cabcl420
  • ベストアンサー率25% (28/108)
回答No.1

(1)2の補数をつかっています.詳しくは下記のサイトやウィキペディアで調べてください。 http://yosshy.sansu.org/2nohosu.htm (2)どういう状況でそうなるのかよくわかりません。

natureowl
質問者

お礼

解答有り難うございます。 (2)は16進8桁で説明せよという問題です。是非、教えて頂ければ幸いです。宜しくお願い致します。

関連するQ&A

  • コンピュータの動作原理について教えて下さい。

    コンピュータの五大機能(入力,出力,記憶,演算,制御)に基づいて、コンピュータの動作原理を「プログラムの制御の流れ」と「データの流れ」という観点から説明したいのですが、これらの「流れ」というものがどうもよく分かりません。 「五大機能」と検索にかけると色々結果が出てくるのですが、制御の流れ・データの流れは単に図で書いてあるだけで、それだけでは理解できません。コンピュータの動作原理について詳しい方、五大機能に基づいて「プログラムの制御の流れ」と「データの流れ」がどうなっているのか教えていただけませんか? ゼミで発表したいのですが、一人ではなかなか難しくて困っています。ご回答宜しくお願い致します。

  • コンピュータの構成

    コンピュータの構成で、入力装置→主記憶装置→出力装置といった順に制御装置や演算装置を介さずデータが流れる場合があるのですが、これは例えばキーボードで文字を入力してディスプレイに文字が出力した場合と同じなのでしょうか。

  • さまざまな加算器と減算器と乗算器について

    最近、論理回路の実験の授業で加算器・減算器・乗算器に取り組みました。 加算器については、半加算器と全加算器の機能や作り方がわかりますが、 Q1.なぜ二つの半加算器で全加算器が作られるのか、その理由が少し推測をしましたが、やはりはっきりとわかりません。 あと、何bitやら何bitやらの並列全加算器についてもよくわかりません。これは本間にレジュメを読みながらしないと、なかなか回路が作れません。 Q2.bitって何ですか?加算器の個数を示しているのか、それとも出力とか入力とかの個数を示していますか。 それから、減算器も全然原理がわかりません。 Q3.結果が1の補数か2の補数かはどのように決められていますか? 文がちょっと長くて失礼ですが教えていただければ感謝いたします!

  • 基本情報技術者過去問

    1)負数を2の補数で表す8ビットの数値がある。この値を10進数で表現すると-100である。この値を符号なしの数値として解釈すると、10進数で幾らか? ア)28 イ)100 ウ)156 エ)228 2) 多くのコンピュータが、演算回路を簡単にするために補数を用いている理由はどれですか。 ア)加算を減算で処理できる イ)減算を加算で処理できる ウ)乗算を加算の組み合わせで処理できる エ)除算を減算の組み合わせで処理できる

  • コンピュータディスプレイ画面の撮影に関して。

    コンピュータディスプレイ画面(CRT)を シャッター速度1/125で撮影した場合と シャッター速度1/15で撮影した場合を比較して その2つの違いって何ですか? 光学的理由や、 コンピュータディスプレイ画面の動作原理を考慮して 差が生じる理由も教えてください。

  • Javaについてちょっとした質問があるのですが。

    たとえば、入力された数字が「5」の場合 5に2をかけて、結果を表示せよ。 というプログラムはどう書くのでしょうか? D:\Work>java test 5 演算結果は 10 です 上記のようにコマンドプロンプトに表示させたいんです。 まだ勉強始めたばかりなので教えてください!

    • ベストアンサー
    • Java
  • 2進数の減算のオーバーフロー/アンダーフロー

    2進数の減算のオーバーフロー/アンダーフロー 2進数の加減算においてどういうときにオーバーフローするのかわかりません。 例えば、 符号付き整数加算として、 1111+0001=10000 となり、4ビットで表現しきれないので、この場合オーバーフローということでしょうか? 基本的に、元々のビット列の長さ(この場合、4ビット)を演算後、超えてしまう 結果となった場合、オーバーフロー、アンダーフローが起きていると考えてしまって よいのでしょうか? 10進数に変換して10進数の演算結果と異なることが分かれば、オーバーフローが 起きているといえるのでしょうが、ビット長が100ビットなど多ビット長の場合に そのようなことはできないので、簡単なオーバーフロー、アンダーフローの見分け方が 知りたいです。 ご回答お願い致します。

  • アルゴリズムが分からない。誰か助けて。。。

    今、授業でアルゴリズムを習っているんですけど、どうやって解けばいいのか分からないです。問題は「キーボードから2つの数値を入力し、大きい数から小さい数を減算した結果を画面表示する。」です。誰か教えてください。出来れば解くコツとかあれば教えてください。

  • Javascriptで算術演算子を作っているのですがわかりません・・・

    あの、JavaScriptの課題で、算術演算子つくり、加算、減算、乗算、除算、整数の除算の商と余りが求めれるように、a bにそれぞれ数値を代入して計算開始というのを作りました。それで、数値以外のたとえば、アルファベットなどを代入した場合、それは数値ではありません、数値を代入してくださいというような数値の入力を促すようになるようにしたいのですが、エラーばかりでます。どのようにソースを打ったら良いのかさっぱりわかりません。教えてください!!よろしくおねがいします。

  • プレイステーション2をコンピュータ用ディスプレイ(液晶モニタ)で見たい

     コンピュータについて初心者ですので宜しくお願いします。  現在プレイステーション2のSCPH-70000を使用しています。  このプレイステーション2をコンピュータ用ディスプレイ(液晶モニタ)につないで楽しみたいと思います。自分なり考えた結果、以下の方法として2つ考えられると思います。 (1)PCディスプレイ用ビデオコンバータなどでコンピュータ用ディスプレイ(液晶モニタ)に映す方法 (2)映像入力端子のあるコンピュータ用ディスプレイ(液晶モニタ)に映す方法  現在(2)の方法で行おうとしています。ただし、自分としてはコントローラーの反応も若干心配していますが、何かお勧めのコンピュータ用ディスプレイ(液晶モニタ)がありましたらご教示をお願いします。宜しくお願いします。