2進数の記述
Posted feedbacks - Ruby
リテラルで書けます。
1 | p 0b01101001 #=> 105
|
最適化されませんがせっかくなので ruby1.9 で書いてみました。Enumerable によるメソッドチェイン部分だけが 1.9 必要部分です。
ruby 1.9.0 (2007-11-21 patchlevel 0) [i686-linux]
Ruby ではメソッド呼び出しのカッコを省略できるのですが、文字列リテラルを最初の引数に書く場合にはさらに空白も省略できます (1.8 でも)。
1 2 3 4 5 6 7 8 9 | def b(str)
str.reverse.each_char.with_index.inject(0) {|r,(s,i)|
r |= s.to_i << i
}
end
p b"01101001"
p "01101001".to_i(2)
p 0b1101001
|



yappy
#4345()
[
C
]
Rating4/6=0.67
そこで、ソース中に2進数を定数として書く方法、またはその代替手段を考えてください。
ある程度の評価基準を示します(できるところまでで構いません)。
・2進数の表示方法は0と1
・桁数は可変長
・コンパイル等の後に最適化等によって定数に変換されることが見込まれる
Cで関数として実装したものを示しておきます。
Rating4/6=0.67-0+
[ reply ]