私たちは日常生活では10進数を使うが、コンピュータでは電気信号のONとOFF、1と0でデータを表現するので2進数が便利である。ただし、2進数では桁が多すぎることから、実際には8進数や16進数が多用される。
異なる基数間で数値を変換してみよう。
2進数の101を10進数に変換
101 = 1 × 22 + 0 × 21 + 1 × 20101 = 1 × 4 + 0 × 2 + 1 × 1 = 5
8進数の123を10進数に変換
123 = 1 × 82 + 2 × 81 + 3 × 80123 = 1 × 64 + 2 × 8 + 3 × 1 = 83
16進数の1FDを10進数に変換
1FD = 1 × 162 + 15 × 161 + 13 × 1601FD = 1 × 256 + 15 × 16 + 13 × 1 = 509
10進数を2進数に変換
10進数の57を2進数に変換する。2で割ることを繰り返して、剰余を逆に並べると「111001」が得られる。
10進数を8進数に変換
10進数の57を8進数に変換する。0になるまで8で割って、剰余を逆に並べると「71」が得られる。
10進数を16進数に変換
10進数の57を16進数に変換する。0になるまで16で割って、剰余を逆に並べると「39」が得られる。
(参考文献)新・明解C言語 入門編 第2版 柴田望洋著(SBクリエイティブ)
基礎C言語 (株)アンク著(インプレス )
コメント