天道酬勤

博观而约取,厚积而薄发!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中将BitArray类型转换为十进制整数的一个思路

Posted on 2010-04-27 22:20  Happy Coding  阅读(813)  评论(0编辑  收藏  举报

    //
        // 摘要:
        //     将BitArray转换为一个十进制整数。
        // 参数:
        //     ba, 下表从低到高的顺序 与十进制整数的二进制形式从低到高的顺序一致
        static int BitArray2Int(BitArray ba)
        {
            Int32 ret = 0;
            for (Int32 i = 0; i < ba.Length; i++)
            {
                if (ba.Get(i))
                {
                    ret |= (1 << i);
                }
            }
            return ret;
        }

 

测试程序:

        static void BitArrayTest()
        {
            BitArray myBA = new BitArray(8);
            myBA.SetAll(true);
            Console.WriteLine("myBA Values:");
            int i = 0;
            foreach (Boolean bl in myBA)
            {
                Console.WriteLine("    [{0}]:    {1}", i++, bl);
                if ((i % 4) == 0)
                {
                    Console.WriteLine();
                }
            }
            int decInt = BitArray2Int(myBA);
            Console.WriteLine("\nAfter Converting...");
            Console.WriteLine("myBA's Decimal Number:\n\t" + decInt);
        }