アプリ版:「スタンプのみでお礼する」機能のリリースについて

2進数の引き算 8進数の足し算、引き算 16進数の足し算、引き算。
この計算方法がいまいちよくわかりません。

2進数引き算
11111101-01111111

8進数足し算
345+674

16進数足し算
EBA-23F

どうやって解いていけばいいのでしょうか?
ぜひ回答お願いします。

A 回答 (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進数)
    • good
    • 0
この回答へのお礼

わかりやすい回答ありがとうございます。
おかげでやり方を把握することができました。

お礼日時:2009/04/15 22:57

紙で計算するなんて滅多に無いですけど。


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/ …
http://www-hep.phys.saga-u.ac.jp/~sugiyama/COMPA …
    • good
    • 0

すべての数値を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
が答え

だったのではないかと…

だんだん 自信がなくなってきた…
    • good
    • 0

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