Bigger power of two

Bigger power of two終了。

C

当初、log2() を用いて、58B でトップに立ったが、hinoe さんに 57B で抜かれた。色々と考えているうち、浮動小数点数の指数部が使えるのではと思いつき、さらに試行錯誤していたら、57B ができた。ちょっと感動だった。
ところで、その際、また、変なことに気づいた。例えば、

log2(5)<<2

は Syntax Error となるが、

atof("5")<<2

は Syntax Error とならない。つまり、コンパイラーは、log2() が double を返すことを知っている、ということ。なんでだろう?

vi

vi は、pla さんに完敗。公開された答えをみたら、recursive に式を実行し、"@0^A" で 2 の n 乗を作っている。すごい。recursive のパターンは、Hanoi でやったやつと同じだ。

Groovy

Groovy は、Long.highestOneBit() だ。Java は、結構機能が充実している。現在アクティブな Ascii decodeweekday names もその手の解答だ。
あと、murky-satyr さんに指摘されているが、文字列→数値変換は、"as ..."でできる。

'123'as int     // 123
123.456as int   // 123
'123.456'as int // error
(int)123.456    // 123
(int)'2'        // 50 -- ASCII code
(int)'A'        // 65 -- ASCII code
(int)'123'      // error