2進数の四則演算とその筆算とPython3による計算
2進法における四則演算のやり方は、単純な演算規則さえ覚えれば、それ以外では10進法におけるやり方と基本的に変わらない。
2進数の足し算
2進法における加算は次の規則に従う。
2進法では\( 1 + 1 \)で位が一つ上がり、その上の位に1足す必要があることに要注意。
\( 1101.01 + 1001.1 \)を筆算で表わすと次のようになる。上記の規則に従うことを除いては演算方法は10進法と同じ。
Python3を使って答え合わせ。0bはその数が2進数であることを表わしている。小数点は計算の便宜上取り除いた。
>>> a = int('0b110101',2) >>> b = int('0b100110',2) >>> c = a + b >>> bin(c) '0b1011011'
int()函数を用いて2進数を10進数に変換して加算をしてからbin()函数を用いて2進数に戻した。
2進数の引き算
2進法における減算は次の規則に従う。
2進法では\( 0 -1 \)で位が一つ下がり、その上の位から1引く必要があることに要注意。上に位がない\( 0 - 1 \)の場合には負の数(-1)になる。
\( 1101.1 - 1001.01 \)を筆算で表わすと次のようになる。上記の規則に従うことを除いては演算方法は10進法と同じ。
Python3を使って答え合わせ。0bはその数が2進数であることを表わしている。小数点は計算の便宜上取り除いた。
>>> a = int('0b110110',2) >>> b = int('0b100101',2) >>> c = a - b >>> bin(c) '0b10001'
int()函数を用いて2進数を10進数に変換してから減算してbin函数を用いて2進数に戻した。
2進数のかけ算
2進法における乗法は次の規則に従う。
\( 101.1 \times 10.1 \)を筆算で表わすと次のようになる。上記の規則に従うことを除いては演算方法は10進法と同じ。両方の数に10(10進数の2)をかけて小数点を右に1桁移動させておくと計算しやすい。筆算後、その数に100(10進数では4)をかければそれが解。
Python3を使って答え合わせ。0bはその数が2進数であることを表わしている。小数点は計算の便宜上取り除いた。
>>> a = int('0b1011',2) >>> b = int('0b101',2) >>> c = a * b >>> bin(c) '0b110111'
int()函数を用いて2進数を10進数に変換して乗算してからbin()函数を用いて2進数に戻した。
2進数の割り算
2進法における除算は次の規則に従う。
\( 1010.1 \div 1.11 \)を筆算で表わすと次のようになる。その前に両方の数に100(10進法では4)を掛けて小数点を右に2桁移動させておくと計算しやすい。
Python3を使って答え合わせ。0bはその数が2進数であることを表わしている。小数点は計算の便宜上取り除いた。
>>> a = int('0b101010',2) >>> b = int('0b111',2) >>> c = a / b >>> bin(int(c)) '0b110'
int()函数を用いて2進数を10進数に変換して乗算してからbin()函数を用いて2進数に戻した。
割り算の結果は浮動小数点数になるのでint()函数で整数に戻してやる必要がある。そうしないとbin()函数を用いて2進数に戻すときに型エラーが生じてしまうので要注意。
コメント
コメントを投稿