الخميس، 23 يناير 2014

برمجة متقدمة سي شارب مصفوفة البت الثنائي C# - BitArray Class

 مصفوفة البت الثنائي C# - BitArray Class

برمجة متقدمة سي شارب مصفوفة البت الثنائي C# - BitArray Class


مصفوفة البت الثنائية 

كلاس مصفوفة البت الثنائية تعالج محموعة من قيم من البت فهي تمثل قيمة منطقية أما 1 وتعني صحيح أو 0 وتعني خطأ.
 تستخدم مصفوفة البت عندما تريد تخزين عدد من البتات ولا تعرف العدد بالتحديد ويمكنك الوصول لعناصر  مصفوفة البت عن طريق الفهرس ويبدا الفهرس من 0 .

دول وخصائص مصفوفة البت الثنائية

خصائص مصفوفة البت الثنائية

خاصية مصفوفة البتاسم لوصف خاصية مصفوفة البت
Countتقراء عدد العناصر التي تحتويها مصفوفة البت
IsReadOnlyتقراء القيمة التي تسير اذا ماكانت مصفوفة البت الثنائية للقراءة فقط
Itemتقراء اوتكتب قيمة البت المحدد موقعه في مصفوفة البت الثنائية
Lengthتقراء اوتكتب طول مصفوفة البت الثنائية

دوال مصفوفة البت الثنائية

التسلسل وصف دوال مصفوفة البت الثنائية
1public BitArray And( BitArray value ); تقوم بتطبيق معامل
 bitwise AND
على العنصر الحالي في مصفوفةالبت
2public bool Get( int index ); تقوم بقراءة قيمة البت المحدد موقعه في مصفوفةالبت الثنائية
3public BitArray Not();تقوم بعكس قيم عناصر المصفوفة البت
4public BitArray Or( BitArray value ); تقوم بتطبيق معامل
 bitwise or
على العنصر الحالي في مصفوفةالبت  
5public void Set( int index, bool value ); كتابة البت في الموقع المحدد بالقيمة المحددة
6public void SetAll( bool value ); تقوم بكتابة مجموعة من البتات الى القيمة المحددة
7public BitArray Xor( BitArray value ); تقوم بتطبيق معامل
 bitwise eXclusive OR
على العنصر الحالي في مصفوفةالبت  

مثال على مصفوفة البت

using System;
using System.Collections;

namespace CollectionsApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //creating two  bit arrays of size 8
            BitArray ba1 = new BitArray(8);
            BitArray ba2 = new BitArray(8);
            byte[] a = { 60 };
            byte[] b = { 13 };
            
            //storing the values 60, and 13 into the bit arrays
            ba1 = new BitArray(a);
            ba2 = new BitArray(b);

            //content of ba1
            Console.WriteLine("Bit array ba1: 60");
            for (int i = 0; i < ba1.Count; i++)
            {
                Console.Write("{0, -6} ", ba1[i]);
            }
            Console.WriteLine();
            
            //content of ba2
            Console.WriteLine("Bit array ba2: 13");
            for (int i = 0; i < ba2.Count; i++)
            {
                Console.Write("{0, -6} ", ba2[i]);
            }
            Console.WriteLine();
           
            
            BitArray ba3 = new BitArray(8);
            ba3 = ba1.And(ba2);

            //content of ba3
            Console.WriteLine("Bit array ba3 after AND operation: 12");
            for (int i = 0; i < ba3.Count; i++)
            {
                Console.Write("{0, -6} ", ba3[i]);
            }
            Console.WriteLine();

            ba3 = ba1.Or(ba2);
            //content of ba3
            Console.WriteLine("Bit array ba3 after OR operation: 61");
            for (int i = 0; i < ba3.Count; i++)
            {
                Console.Write("{0, -6} ", ba3[i]);
            }
            Console.WriteLine();
            
            Console.ReadKey();
        }
    }
}

ناتج مثال مصفوفة البت الثنائية

Bit array ba1: 60 
False False True True True True False False 
Bit array ba2: 13
True False True True False False False False 
Bit array ba3 after AND operation: 12
False False True True False False False False 
Bit array ba3 after OR operation: 61
True False True True False False False False 


Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO Expert ,PHP,C#,ASPX,SQL
Al alami st
gaza -jabaliaGaza Strip
Palestine
DOB: 05/10/1984
23/1/2014

التسميات: