• ベストアンサー

9-3の時の内部処理・・・

10進数における 「9-3」の計算をする時のコンピューターの内部処理は? と言う問題があり、自信がありません… 9-3を計算する場合は一旦、9+(-3)と言う足し算に直す所 までは分かるのですが、そこから、 10進数の9は2進数で00001001、-3は2進数で11111101に変換 し、答えは10進数で6となる。 これで合っていますか? 初歩的な問題ですが、皆さんの回答をお待ちしてます。

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

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

> 10進数の9は2進数で00001001 データ型が1バイトであることを前提におけばGood. > -3は2進数で11111101 さらに「負の数は2の補数で表現する」という前提条件をおけば Good. (一般的には2の補数ですよね) で,これらを足し合わせると    00001001 (= 9) +)11111101 (=-3) ------------------------  (1)00000110 (= 6) となり,キャリーオーバー(桁上がり)した分が8ビットから飛び出して無視されて,6になりますね。 ということで,大まかな説明はあっていますが,  前提条件1:データ型を1バイトで表現する。  前提条件2:負の数は2の補数で表現する。  計算結果:桁上がり分が1バイトから飛び出して無視されるので,結果6になる。 という説明を追加すると,もっと親切な説明になるんじゃないかと思います。

yo-_-hey
質問者

お礼

ご丁寧な返答有難うございます! 説明の補足と前提条件まで教えて頂き有難うございました!!

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

合っているのでは。 もしかするとborrow(桁下がり/桁借り)についての言及も必要かもしれません。

yo-_-hey
質問者

お礼

ありがとうございます!調べてみます(^^)

関連するQ&A