0b 1101 =
1 * 2 ** 0 + 0 * 2 ** 1 + 1 * 2 ** 3 + 1 * 2 ** 4 = 0d11
などの 2 進数の計算を行うプログラムを作ろう。binary.rb
#!/usr/koeki/bin/ruby printf("2 進数を計算します\n") printf("1 桁目から入力し、終了したら q を押して下さい\n") n=
1 x=
0 while true STDERR.printf("%d 桁目の数字は何ですか?",n) m=
gets.chomp if m==
"q" then break else m=
m.to_i end x += m * 2 ** (n-1) n += 1 end printf("10 進数に直すと %d になります\n
",x)
実際に 0b 1101 をこのプログラムを使って計算し、 0d 13 となることを確かめよ。
Madoka Nishimura <madoka.koeki-u.ac.jp>