- ベストアンサー
2進法と16進法の加減算
みなさん始めまして!よろしくおねがいします。基本情報の問題です。 以下の計算につき、桁上がりや桁借りをふくめた解説お願いいたします。 -----ココから 2進法 A:00110101 B:00011110 A+B A-B 16進法 A:ABCD B:9876 A+B A-B -----ココまで
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
A:110101 B:11110 A+Bについて 110101+11110=121211 ここで、2=10だから(これが桁上がりです)、202011 再び2=10より、A+B=1010011 A-Bについて 一の位は1-0だから桁借りがなく、1(残りは11010-1111) 十の位は0-1だから桁借りをして、10-1=1(残りは1100-111) 百の位も0-1だから桁借りをしたいが、Aの千の位が0なので、更に桁借りをしておく。(つまり、100=12) 面倒なので千の位も同時に考えて12-11=01(残りは10-1) 一万の位は桁借りをして10-1=1 これで計算終了。 A-B=10111 16進法 A:ABCD B:9876 これでは引き算のときに桁借りがないので、 A:13579 B:ABCD これでやってみましょうか。(自爆しそうだけど(笑)) G=10 に注意します。 A+Bについて 一の位 9+D=(Dから3つ進むとGで、6余るから)6(十の位は桁上がり) 十の位 1+7+C=(Cから4つ進むとGで、4余るから)4(百の位は桁上がり) 百の位 1+5+B=(Bから5つ進むとGで、1余るから)1(桁上がりあり) 千の位 1+3+A=E (桁上がりなし) 以上より、A+B=1E146 A-Bについて 一の位はBの方が大きいから桁借りをしておく。 19-D=(19から13戻って)6 十の位は一の位で桁借りがあったので、6-Cとなり、またBの方が大きいので桁借りをする。 16-C=(16から12戻って)4 百の位も同様に、 14-B=3 千の位も同様に 12-A=2 よって、A-B=2346 こんな感じでよろしいでしょうか?
その他の回答 (4)
- good777
- ベストアンサー率28% (36/125)
【2進法】 A:00110101 B:00011110 ★ A+B ******************************************* A:00 11 01 01 + B:00 01 11 10 ------------------ 11 ←01+10=10 1 00 ←01+11=100 1 00 ←11+01=100 ------------------- 01 01 00 11 ★ A+B ****************************************** A:00110101 +10=00110111 - B:00011110 +10=00100000 ------------------ A、Bともに10をくわえてからひいても差A-Bは変わらない A:00110111 - B:00100000 ------------------ 00010111 【16進法】 A:ABCD B:9876 ★ A+B ********************************************* ABCD +9876 ------- 13 ←D+6=13 13 ←C+7=13 13 ←B+8=13 13 ←A+9=13 -------- 14443 ★ A-B ************************************************* ABCD -9876 ------- 7 ←D-6=7 5 ←C-7=5 3 ←B-8=3 1 ←A-9=1 -------- 1357 説明読むのもかったるいという人向けに 説明文を極力省いてみました。 題して、「目で解く、記数法」 ただし、スペースキーが反映されないとしたら 悲惨な結果になりそう。
お礼
基数計算に関してある程度知識があればこれくらい簡潔な説明がかったるくなくてよかったのかも。でもでもわたしは数学音痴なんですぅ(^^;;;。ありがとうございます。
ゆっくりやってたら先を越されてしまった(笑) 一応こんなのを見つけてきたので置いていきます。
お礼
検索でもいろいろさがしたんですけど、このページはひっかからなかった。ナイスサーチ!ありがとうございます。
- hero1000
- ベストアンサー率29% (114/390)
n進法ならば、各桁の和(繰り上がり分があるときは、それも含む)をxとすると、 x ≧ n ならば 1つ上の位に1繰り上がり、(x-n)がその桁の答え x < n ならば そのままxがその桁の答え となります。 引き算の場合は、各桁の差(繰り下がり分があるときは、それも含む)をyとすると、 y < 0 ならば 1つ上の位から1繰り下がり、(y+n)がその桁の答え y ≧ 0 ならば そのままyがその桁の答え となります。 2進法 A:00110101 B:00011110 これを2^0の位(右端)から順に計算していきます。 2^0の位 1+0 = 1 2^1の位 0+1 = 1 2^2の位 1+1 = 2 → 1繰り上がって、この桁は0 2^3の位 0+1 +1(繰り上がり分) = 2 → 1繰り上がって、この桁は0 2^4の位 1+1 +1(繰り上がり分) = 3 → 1繰り上がって、この桁は1 2^5の位 1+0 +1(繰り上がり分) = 2 → 1繰り上がって、この桁は0 2^6の位 0+0 +1(繰り上がり分) = 1 2^7の位 0+0 = 0 よって、A+B=01010011bとなります。(末尾の「b」は2進表記を示します) 続いてA-Bです。やはり2^0の位(右端)からの計算です。 2^0の位 1-0 = 1 2^1の位 0-1 = -1 → 2^2の位から1繰り下がって、この桁は1 2^2の位 1-1 -1(繰り下がり分) = -1 →2^3の位から1繰り下がって、この桁は1 2^3の位 0-1 -1(繰り下がり分) = -2 →2^4の位から1繰り下がって、この桁は0 2^4の位 1-1 -1(繰り下がり分) = -1 →2^5の位から1繰り下がって、この桁は1 2^5の位 1-0 -1(繰り下がり分) = 0 2^6の位 0-0 = 0 2^7の位 0-0 = 0 よって、A-B=00010111bとなります。 さて、16進法の方ですが、これも考え方は一緒です。 ただし、各桁の計算結果が10以上になった場合はちょっとクセがあります。 10→A、11→B、12→C、13→D、14→E、15→F を覚えて下さい。 A:ABCD B:9876 まずA+Bを求めます。やはり16^0の位(右端)から計算します。 16^0の位 D(13)+6 = 19 →16^1の位に1繰り上がって、この桁は3 16^1の位 C(12)+7 +1(繰り上がり分) = 20 →16^2の位に1繰り上がって、この桁は4 16^2の位 B(11)+8 +1(繰り上がり分) = 20 →16^3の位に1繰り上がって、この桁は4 16^3の位 A(10)+9 +1(繰り上がり分) = 20 →16^4の位に1繰り上がって、この桁は4 16^4の位 A、Bともにこの位がないので、 0+0 +1(繰り上がり分) = 1 よって、A+B=14443h(末尾の「h」は16進表記を示します) つぎにA-Bです。 16^0の位 D(13)-6 = 7 16^1の位 C(12)-7 = 5 16^2の位 B(11)-8 = 3 16^3の位 A(10)-9 = 1 よって、A-B=1357hとなります。 ちょっとゴチャゴチャしてしまいましたが、わかりましたでしょうか?
お礼
私てきにセカンドベストはこれでしょうか。計算のステップをみやすく、わかりやすく、詳細にシミュレートしたくださいました。サンキュー!
- igmp
- ベストアンサー率28% (156/546)
普通、我々一般人は10進数に慣れ親しんでいます。 10進数の場合は足して10(9+1)以上になったら桁上 がりが、桁借りの場合は10を借り(足し)ます。 この原理は2進数でも16進数でも同様で、2進数の場合 は2(1+1)以上になったら桁上がり、桁借りの場合は2 を借り(足します)。 同じく16進数は、16(F+1)以上になったら桁上がり、 桁借りの場合は16を借り(足します)。
お礼
問題の解き方を一通り理解したあとで、知識をざっと整理するのに役立ちました。ありがとうございます。
お礼
どれもよかったのですが、私的にベストはコレでしょうか。桁上がり、桁借りにかんしてもこの説明で飲み込めました。一番うれしかったのは16進数の引き算で桁借りが発生するよう問題をアレンジしてくださったことです(涙)サンキューベリーマッチでした。