- ベストアンサー
9-3の時の内部処理・・・
10進数における 「9-3」の計算をする時のコンピューターの内部処理は? と言う問題があり、自信がありません… 9-3を計算する場合は一旦、9+(-3)と言う足し算に直す所 までは分かるのですが、そこから、 10進数の9は2進数で00001001、-3は2進数で11111101に変換 し、答えは10進数で6となる。 これで合っていますか? 初歩的な問題ですが、皆さんの回答をお待ちしてます。
- みんなの回答 (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になる。 という説明を追加すると,もっと親切な説明になるんじゃないかと思います。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
合っているのでは。 もしかするとborrow(桁下がり/桁借り)についての言及も必要かもしれません。
質問者
お礼
ありがとうございます!調べてみます(^^)
お礼
ご丁寧な返答有難うございます! 説明の補足と前提条件まで教えて頂き有難うございました!!