#25

10進数を2進数に変換する

10進数の13を2進数に変換し、bin()と手計算が一致することを確かめます。

解説

私たちが普段使う10進数は0〜9の10種類を使いますが、コンピュータは電気のON(1)とOFF(0)の2種類だけで数を表します。これが2進数です。 10進数を2進数に直すには「2で割り続けて余りを下から並べる」だけ。13なら 13÷2=6余り1、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1。下から読むと 1101 になります。 Pythonには bin() がありますが、仕組みを理解するために手計算のアルゴリズムも書いてみましょう。

書き方

bin(整数) — 整数を2進数の文字列に変換(先頭に "0b" が付く)。
・bin(13) は "0b1101"、bin(n)[2:] で "0b" を除いた桁だけ取り出す。
・手計算: while で 2 で割り続け、m % 2(余り)を集め、m //= 2(整数の商で更新)。
・リスト.append(値) で末尾に追加、リスト.reverse() で並びを逆順にする。
・"".join(文字の並び) で文字列を連結、str(数値) で文字列に変換。

書いて動かす

この回の課題

10進数13を bin() で2進数に変換し、2で割った余りを集める手計算アルゴリズムでも求めて、両者が一致することを確かめよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。