2進数の記述
Posted feedbacks - C#
オーソドックスに。C# だとコンパイル時計算って……むりだったような気が……。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System;
static class Program {
static void Main() {
Console.WriteLine(Bin(01001001)); // 73
Console.WriteLine(Bin(01101001)); // 105
}
static int Bin(uint octet) {
int digit = 1, bin = 0;
while(octet != 0) {
if ((octet % 10) != 0) bin |= digit;
digit <<= 1;
octet /= 10;
}
return bin;
}
}
|
んー。やっぱり C# なら文字列として持ってたほうが良いかな。
1 2 3 4 5 6 7 8 9 10 | using System;
static class Program {
static void Main() {
Console.WriteLine(Bin("01001001")); // 73
Console.WriteLine(Bin("01101001")); // 105
}
static int Bin(string num) {
return Convert.ToInt32(num, 2);
}
}
|




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