ポヨさんの引き算ツイートまとめ

これは、一つずつちゃんと理解すると、アダーとかマルチプレクサの仕組みがあっさりわかる。
1
ぽよ @Poyo_F

以下は、ぽよが、 @mayuutann さんに、うっかりメールで間違った事を教えた罪滅ぼし。2年前の8月のツィートを掘り起こした。 #引き算で借り てくる話だ。

2012-12-09 23:56:52
ぽよ @Poyo_F

ぽよは、100-58は、のような計算は今でも苦手だ。0から8を引けないから、10の位から1借りてきて、その1を借りようと思ったら、また0だから、更に上の100の位から1借りてくる。。。  この「借りてくる」というのが嫌だった。これが2年前の #引き算で借り てくる話の発端。

2012-12-09 23:57:09
ぽよ @Poyo_F

100-58の #引き算で借り てくるのが嫌だったら、全ての桁が9の99から引けば、絶対借りてこなくて済む。99-58は41だ。元々100から引くつもりだったから、後で1を足せば簡単だ。41+1=42っと。この技を、ぽよは、引き算を習った時に編み出して活用していた。

2012-12-09 23:57:36
ぽよ @Poyo_F

82-58も、これを応用すれば簡単だった。182から引いて、後で100の位の1を消せばいい。182-58=82+(100-58)=82+42=124だから、100の位の1を消して答えは24。括弧の中の100-58は前ツイの方法が使えるから全て #引き算で借り ずに行える。

2012-12-09 23:58:30
ぽよ @Poyo_F

#引き算で借り るのが嫌なだけでなく、引き算そのものもやりたくなかった。それで覚えたのが、「1⇔8」、「2⇔7」、「3⇔6」、「4⇔5」のペア。これを覚えておくだけで、一桁の引き算もしなくてすむ。。。全く、どんだけ引き算嫌いなんだか(笑)。

2012-12-09 23:59:12
ぽよ @Poyo_F

例えば、10101-235で #引き算で借り てくるのを避ける計算は ⇒ 10101=101+1+9999だから、102+(9999-235)=102+9764=9866とできる。括弧の中の引き算は0,2,3,5から対応する数9,7,6,4を思い出すだけ。あとは全部足し算だ。

2012-12-09 23:59:44
ぽよ @Poyo_F

これを思いついたのが原因で、ますます「 #引き算で借り てくる」のが苦手になってしまった。それにこのせいで、ぽよは割り算でも苦しむことになる。ともあれ、ぽよの小学校の時の先生はいい先生だった。こんな変な計算していたのに、ちゃんと〇をつけてくれたもの。今の小学校はどうなんだろう?

2012-12-10 00:00:28
ぽよ @Poyo_F

2の補数を覚えたのは、中学3年の時。なのに #引き算で借り てくるのを避けるために小さい頃に編み出した ぽよ流の引き算法が、2の補数と同じ考えに基づいているという事に気づいたのは大学になってから。

2012-12-10 00:01:18
ぽよ @Poyo_F

2進法で #引き算で借り を避ける ぽよ流の引き算は次のようになる⇒10000-111は、借りてくるのが大変なので1111から111を引く。これなら簡単、1000だ。そして元々111を引きたかった10000は2進法では1111+1の事だから、後で1を足せばいい。つまり1001だ。

2012-12-10 00:02:53
ぽよ @Poyo_F

2進法で #引き算で借り の例をもう一つ⇒1010-111は、予め10000を加えておいて、最後に一番上の位の1を消せばよいから、1010-111⇒1010+10000-111=1010+1+(1111-111)=1010+1+1000=10011の一番上の位の1を消して⇒11

2012-12-10 00:03:50
ぽよ @Poyo_F

上ツイの2進法で #引き算で借り るのを避ける計算の例にある1111から引く計算の結果のは1の補数と呼ばれる。つまり111の場合1の補数は1000だ。これは0111という数の1と0とを交換して求める事ができる。

2012-12-10 00:08:53
ぽよ @Poyo_F

1111を10000にするために足している1を1の補数である1000に加えた数の事を2の補数と呼ぶ。つまり111の場合、2の補数は、1000+1=1001だ。一番上の1を消す事にしておけば、元の計算式は1010+1001と書ける。 #引き算で借り (続く⇒)

2012-12-10 00:16:05
ぽよ @Poyo_F

(⇒続き) #引き算で借り :これはつまり一番上の桁を無視することにすれば、1010-111=1010+(-111)=1010+1001と書けば、1001=(-111)という事になる。2の補数1001は、111の負数表現(-111)の事だったのだ。

2012-12-10 00:16:37
ぽよ @Poyo_F

2進法では対応する数のペアは1⇔0しか無いから、1のゾロ目数からの引き算は、引く数の1と0を交換するだけでできる。そうすれば、2進数で #引き算で借り を避けるだけでなく、1と0の交換と足し算だけで引き算を行える。しかもこの1と0の交換は、XORという和で1を加える事に相当する。

2012-12-10 00:24:05
ぽよ @Poyo_F

2進数111(つまり10進数の7)の場合の2の補数1001(つまり10進数の9)は、0が頂上にあって16時間で一回りする時計盤0→1→2→3→...→12→13→14→15→0を考えると面白い。-7時とはこの時計盤での0時の7時間前、つまり9時なのだ。 #引き算で借り

2012-12-10 00:25:40
ぽよ @Poyo_F

#引き算で借り るのを避ける計算の事を補数計算という。コンピューターは機械だ。機械にはヒトがやるような方法で引き算をするだけの頭脳が無い。だから、ヒトがやるような直接の(賢い)引き算は避けて補数計算で引き算をするようになっている。ぽよはアホな機械並みということか。やれやれ。

2012-12-10 00:31:47