みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2008-09-05 22:45:46

QNo.4306690

すぐに回答ほしいです

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

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

投稿日時 - 2008-09-05 23:37:07

お礼

解答有り難うございます。

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

投稿日時 - 2008-09-06 01:08:06

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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進数で表記すればよいわけです。

投稿日時 - 2008-09-06 10:17:22

お礼

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

投稿日時 - 2008-09-06 13:49:29

ANo.2

(1)はすでに回答をいただいているので省略。
(2)どの程度まで細かく説明をご希望でしょうか。
場合によっては数時間コースの説明にもなってしまいますが…

おおざっぱに
 入力→処理→出力
が基本的な動作です。

細かくいくと
 キーが押される→スイッチが通電する→キーボードの中にあるコントローラから対応したキーコードをコンピュータ本体へ伝える…
となっちゃいます。

投稿日時 - 2008-09-05 23:17:30

お礼

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

投稿日時 - 2008-09-06 01:13:03

ANo.1

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

投稿日時 - 2008-09-05 22:55:46

お礼

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

投稿日時 - 2008-09-06 01:10:50

あなたにオススメの質問