Пример #1
0
        static void Main(string[] args)
        {
            BitArray ba = new BitArray(100000);
            ba[0] = 1;
            ba[3] = 1;
            ba[99999] = 1;

            Console.WriteLine(ba);
        }
Пример #2
0
        public static BitArray operator &(BitArray arr1, BitArray arr2)
        {
            int max = Math.Max(arr1.Size, arr2.Size);
            int min = Math.Min(arr1.Size, arr2.Size);

            BitArray result = new BitArray(max);

            for (int i = 0; i < min; i++)
            {
                result[i] = arr1[i] & arr2[i];
            }

            return result;
        }
Пример #3
0
        static void Main()
        {
            BitArray test = new BitArray(32);
            Console.WriteLine(test[5]);
            test[5] = 1;
            Console.WriteLine(test[5]);
            Console.WriteLine(test);

            // test[32] = 1; // bit array was initialized with 32 elements
            // BitArray large = new BitArray(100001);

            BitArray max = new BitArray(100000);
            max[99999] = 1;
            Console.WriteLine(max);
            Console.WriteLine(max & test);
        }
Пример #4
0
        public static BitArray operator |(BitArray arr1, BitArray arr2)
        {
            int max = Math.Max(arr1.Size, arr2.Size);
            int min = Math.Min(arr1.Size, arr2.Size);
            BitArray biggerArray = arr1.Size < arr2.Size ? arr2 : arr1;

            BitArray result = new BitArray(max);

            for (int i = 0; i < min; i++)
            {
                result[i] = arr1[i] | arr2[i];
            }

            for (int i = min; i < max; i++)
            {
                result[i] = biggerArray[i];
            }

            return result;
        }
Пример #5
0
        public static BitArray operator ~(BitArray arr)
        {
            BitArray result = new BitArray(arr.Size);

            for (int i = 0; i < arr.Size; i++)
            {
                result[i] = arr[i] ^ 1;
            }

            return result;
        }
Пример #6
0
        public static BigInteger BitArrayToDecimalString(BitArray arr)
        {
            BigInteger decimalResult = new BigInteger();

            for (int i = 0; i < arr.Size; i++)
            {
                if (arr[i] != 1)
                {
                    continue;
                }

                BigInteger powerOfTwo = new BigInteger(1);
                for (int j = 0; j < i; j++)
                {
                    powerOfTwo *= 2;
                }

                decimalResult += powerOfTwo;
            }

            return decimalResult;
        }
        public static BigInteger BitArrayToDecimalString(BitArray arr)
        {
            BigInteger decimalResult = new BigInteger();

            for (int i = 0; i < arr.Size; i++)
            {
                if (arr[i] != 1)
                {
                    continue;
                }

                //  BigInteger do i need to create a class , showing me problem on BigInteger ?!
                BigInteger powerOfTwo = new BigInteger(1);
                for (int j = 0; j < i; j++)
                {
                    powerOfTwo *= 2;
                }

                decimalResult += powerOfTwo;
            }

            return decimalResult;
        }
Пример #8
0
 static void Main(string[] args)
 {
     var bitArr = new BitArray(100000);
     bitArr[99999] = 1;
     Console.WriteLine(bitArr);
 }