準・究極の選択

みなさん始めまして!よろしくおねがいします。基本情報の問題です。
以下の計算につき、桁上がりや桁借りをふくめた解説お願いいたします。
-----ココから
2進法
 A:00110101 B:00011110
 A+B
 A-B

16進法
 A:ABCD B:9876
 A+B
 A-B
-----ココまで

A 回答 (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

こんな感じでよろしいでしょうか?
    • good
    • 0
この回答へのお礼

どれもよかったのですが、私的にベストはコレでしょうか。桁上がり、桁借りにかんしてもこの説明で飲み込めました。一番うれしかったのは16進数の引き算で桁借りが発生するよう問題をアレンジしてくださったことです(涙)サンキューベリーマッチでした。

お礼日時:2001/06/04 14:32

【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


説明読むのもかったるいという人向けに
説明文を極力省いてみました。
題して、「目で解く、記数法」
ただし、スペースキーが反映されないとしたら
悲惨な結果になりそう。
    • good
    • 0
この回答へのお礼

基数計算に関してある程度知識があればこれくらい簡潔な説明がかったるくなくてよかったのかも。でもでもわたしは数学音痴なんですぅ(^^;;;。ありがとうございます。

お礼日時:2001/06/04 14:28

ゆっくりやってたら先を越されてしまった(笑)


一応こんなのを見つけてきたので置いていきます。

参考URL:http://www.josaigakuen.ac.jp/~yoshi561/syumi.htm
    • good
    • 0
この回答へのお礼

検索でもいろいろさがしたんですけど、このページはひっかからなかった。ナイスサーチ!ありがとうございます。

お礼日時:2001/06/04 14:29

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となります。


ちょっとゴチャゴチャしてしまいましたが、わかりましたでしょうか?
    • good
    • 0
この回答へのお礼

私てきにセカンドベストはこれでしょうか。計算のステップをみやすく、わかりやすく、詳細にシミュレートしたくださいました。サンキュー!

お礼日時:2001/06/04 14:34

普通、我々一般人は10進数に慣れ親しんでいます。


10進数の場合は足して10(9+1)以上になったら桁上
がりが、桁借りの場合は10を借り(足し)ます。
この原理は2進数でも16進数でも同様で、2進数の場合
は2(1+1)以上になったら桁上がり、桁借りの場合は2
を借り(足します)。
同じく16進数は、16(F+1)以上になったら桁上がり、
桁借りの場合は16を借り(足します)。
    • good
    • 0
この回答へのお礼

問題の解き方を一通り理解したあとで、知識をざっと整理するのに役立ちました。ありがとうございます。

お礼日時:2001/06/04 14:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!