- ベストアンサー
2進数 8進数 16進数
2進数の引き算 8進数の足し算、引き算 16進数の足し算、引き算。 この計算方法がいまいちよくわかりません。 2進数引き算 11111101-01111111 8進数足し算 345+674 16進数足し算 EBA-23F どうやって解いていけばいいのでしょうか? ぜひ回答お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
10進数と、2進数、8進数、16進数の数列を比較すると、 10進数:0,1,2~8,9,10,11,12~19,20,21~~98,99,100,101~ 8進数:0,1,2~6,7,10,11~16,17,20,21~~76,77,100,101~ 16進数:0,1,2~E,F,10,11~1E,1F,20,21~~FE,FF,100,101~ 2進数:0,1,10,11,100,101,110,111,1000,~ となります。 つまり、n進数は、n個の数を1塊りとして、n(塊)を超えると1つ桁を増やしていくというやり方です。 したがって、何進数でも計算の仕方は同じです。 まず、10進数に近い8進数から考えてみます。 8進数足し算 : 各桁ごとに(通常下1桁目から行います) 足し算していきます。 引き算は足し算の逆をします。 5+4、1桁の最大数は7、最大数を超えるので桁上がり、7-5=2、余り2、4-2=2 最初から2番目の数は1、答え 11 実際の手計算は10進数で行います。 5+4=9、9-8=1、繰り上げ あり 答え 繰り上げ と 1 で 11 8進数足し算 : 合計が 8 以上で、繰り上がり(繰上)が生じます。 345+674 5+4 = 9(10進数)=8(繰上)+1=繰上 と 1 (8進数) 4+7 = 11(10進数)=8(繰上)+3=繰上 と 3+1(繰上分)=4 (8進数) 3+6 = 9(10進数)=8(繰上)+1=繰上 と 1+1(繰上分)=2 (8進数) 繰上 あり = 1 345+674=1241 8進数引き算 : 引く数字の方が大きい場合には繰り下がり(繰下=上の桁から借りてくる)が必要です。 1241-345 1-5 = (1+8(繰下))-5=4(10進数、8進数) 4-4 = (4-1(繰下分))-4=3-4=(3+8(繰下))-4=7(10進数、8進数) 2-3 = (2-1(繰下分))-3=1-3=(1+8(繰下))-3=6(10進数、8進数) 4桁目の 1 は、繰下に使われた(繰下分) 1241-345=674 16進数引き算 : 要領は8進数の計算方法と同じ 0,1~9,A,B,C,D,E,F の16個の数字を使用 EBA-23F A-F → 10(A)-15(F)=(10+16(繰下))-15=11 (10進数) =B (16進数) B-3 → (11(B)-1(繰下分))-3=7 (10進数、16進数) E-2 → 14(E)-3=11 (10進数) =C (16進数) EBA-23F=C7B 2進数引き算 : 使う数は2つ 0 と 1、 すぐ繰上、繰下が起きるので要注意 (1) 0+1=1 (2) 1+0=1 (3) 1+1=0 繰上あり (4) 1-0=1 (5) 1-1=0 (6) 0-1=1 繰下必要 計算はこれだけ。 0+0=0、0-0=0 は省略 2進数で、特に 10-1=1 は、解り難いかも知れませんが、上記の2進数の数直線を書くと理解できます。 0から右に 1ずつ大きくなる数値を並べると、 0,1,10,11,100,101,110,111,1000,1001~ となります。 各数字の第1桁目をよく見ると、1つ増(減)する度に、 0 と 1 とが交互になります。 これが2進数の特徴です。 良く覚えておきましょう。 11111101-01111111 : 8桁(1バイト分) 1-1 = 0 : (5) 0-1 = 10(繰下)-1=0-1=1 : (6) 1-1 = (1-1(繰下分))-1=0-1=10(繰下)-1=0-1=1 : (6) 1-1 = (1-1(繰下分))-1=0-1=10(繰下)-1=0-1=1 : (6) 1-1 = (1-1(繰下分))-1=0-1=10(繰下)-1=0-1=1 : (6) 1-1 = (1-1(繰下分))-1=0-1=10(繰下)-1=0-1=1 : (6) 1-1 = (1-1(繰下分))-0=0-0=0 11111101-01111111=01111110 : 253-127=126(10進数)
その他の回答 (2)
- INTLINSIDE
- ベストアンサー率42% (383/907)
紙で計算するなんて滅多に無いですけど。 2進は、そのまま計算もできると思います。 1+1=10 1-1は0 10+01=11 10-01=01 8進とか16進は、私は10進に直してから計算して元に戻しますね・・・。 でないと頭の中が痒くなりそうで。 以下のサイトに書いてあるような方法で10進から他の進数に変換できます。(10進に戻すときの計算も書いてあります。) http://www.rinku.zaq.ne.jp/jim-cyberix/computer/10-8.html http://www-hep.phys.saga-u.ac.jp/~sugiyama/COMPA/n-shinsuu.html
- wzero
- ベストアンサー率32% (66/206)
すべての数値を10進数に変換するのも方法です 2進数は単純で、 11111101 + 01111111 1+1=10 桁がひとつ繰り上がり、10 となる 1+0= 1 0+1= 1 が基本 を考えると それだけで答えは見えてくるのでは? 8進数足し算 345+674 8進数は 01234567と数値がふえ、 8=次の位に繰り上がり 3 4 5 + 6 7 4 9 11 9 9は8を引けば、1繰り上がって (1) 12は繰り上がった1を足して 13-8 で (5) ただし1繰り上がり 9は1を足して 10になって、10-8 で (2) ただし1繰り上がり 桁が増えて (1) 上から順番に下の桁から数値をはめ込むと 結果 1251 16進数足し算 EBA-23F 基本 1、 2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、 E、 F 01、02、03、04、05、06、07、08、09、10、11、12、13、14、15 E B A = 15 11 10 - 2 3 F = 02 03 15 10は、15を引けないので、上の位から 1を借りてくる、ただし、これは15に相当するので、25に変化 E B A = 15 10 25 - 2 3 F = 02 03 15 13 07 10 13はC、10はAなので C7A が答え だったのではないかと… だんだん 自信がなくなってきた…
お礼
わかりやすい回答ありがとうございます。 おかげでやり方を把握することができました。