2011年8月6日土曜日

.NetMicroFrameworkで2進数文字列を整数に

C#(.NetFull)だと
int num2 = Convert.ToInt32("1111101000", 2);
みたいにやるところだけど

.NetMicroFrameworkでは Convert.ToInt32が使えないみたい
ということで↓の方法を試してみた

        public static int ToInt(string input)
        {
            int i = 0;
            for (int c = 0; c < input.Length; c++) { i = (i << 1) + (input[c] == '0' ? 0 : 1); }
            return i;
        }

ビットシフトを使っただけ
だけど一応動作する
int i = ToInt("1100");
みたいなかんじで使えばおk
整数を2進数文字列にすることも簡単かも
応用して16進とかも
ただ16進になると三項演算子が使えないからちょっとめんどくさいかも

今は2進数だけだったからこれだけで

機会があったら他の進数も試してみます

0 件のコメント:

コメントを投稿