- 整数の10進数を2進数に変換
算数か数学で習ったことがあるような気がしましたが、全く覚えていませんでした。ググってみたところ、整数の10進数を2進数に変換するには、変換したい10進数を商が0になるまで2で割りつづけ商と余りを求めればよいと、基本情報技術者講座のウェブサイトに掲載されていました。
結構考えてみたのですが、プログラムが思いつきませんでした。今回は解答例を参照して勉強することにしました。
解答例1
N = int(input())
binary = 0
i = 0
while N > 0:
digit_num = N % 2
binary += digit_num * pow(10, i)
N //= 2
i += 1
print(binary)
- N % 2とすることで、2 進数にした場合の数字を求め、pow(10, i) を掛けることで現在の桁に合わせて 10 の累乗をしています。
- これを N が 0 になるまで繰り返すことで 10 進数を 2 進数に変換しています。
解答例2
N = int(input())
print(bin(N)[2:])
- Python の場合、組み込み関数である bin() を使用することで、10 進数を 2 進数に変換することができます。
- 変換後の最初の 2 文字は 2 進数を表す 0b なので出力する際には除去する必要があります。