ตัวดำเนินการระดับบิตทำงานบนบิตและดำเนินการทีละบิต
ตัวดำเนินการ Bitwise ที่รองรับโดย C# แสดงอยู่ในตารางต่อไปนี้ สมมติว่าตัวแปร A มีค่า 60 และตัวแปร B มีค่าเท่ากับ 13 -
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
& | Bitwise AND Operator คัดลอกบิตไปยังผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง | (A &B) =12 ซึ่งเท่ากับ 0000 1100 |
| | Bitwise OR Operator คัดลอกบิตหากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง | (A | B) =61 ซึ่งก็คือ 0011 1101 |
^ | ตัวดำเนินการ Bitwise XOR จะคัดลอกบิตหากมีการตั้งค่าไว้ในตัวถูกดำเนินการเดียว แต่ไม่ใช่ทั้งสองอย่าง | (A ^ B) =49 ซึ่งก็คือ 0011 0001 |
~ | ตัวดำเนินการเสริมของ Bitwise One เป็นเอกสิทธิ์และมีผลของการ 'พลิก' บิต | (~A ) =61 ซึ่งเท่ากับ 1100 0011 ในส่วนเสริมของ 2 เนื่องจากเลขฐานสองที่มีเครื่องหมาย |
<< | ตัวดำเนินการ Shift ซ้ายระดับบิต ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา | A <<2 =240 ซึ่งก็คือ 1111 0000 |
>> | ตัวดำเนินการ Shift ขวาระดับบิต ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา | A>> 2 =15 ซึ่งเท่ากับ 0000 1111 |
ตัวอย่าง
ต่อไปนี้คือตัวอย่างที่แสดงวิธีการใช้ตัวดำเนินการ Bitwise ใน C#
using System; namespace MyApplication { class Program { static void Main(string[] args) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; // Bitwise AND Operator c = a & b; /* 12 = 0000 1100 */ Console.WriteLine("Line 1 - Value of c is {0}", c ); // Bitwise OR Operator c = a | b; /* 61 = 0011 1101 */ Console.WriteLine("Line 2 - Value of c is {0}", c); // Bitwise XOR Operator c = a ^ b; /* 49 = 0011 0001 */ Console.WriteLine("Line 3 - Value of c is {0}", c); // Bitwise Complement Operator c = ~a; /*-61 = 1100 0011 */ Console.WriteLine("Line 4 - Value of c is {0}", c); // Bitwise Left Shift Operator c = a << 2; /* 240 = 1111 0000 */ Console.WriteLine("Line 5 - Value of c is {0}", c); // Bitwise Right Shift Operator c = a >> 2; /* 15 = 0000 1111 */ Console.WriteLine("Line 6 - Value of c is {0}", c); Console.ReadLine(); } } }
ผลลัพธ์
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15