Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ตัวดำเนินการระดับบิตใน C # คืออะไร


ตัวดำเนินการ Bitwise ทำงานเป็นบิตและดำเนินการทีละบิต

ต่อไปนี้เป็นตัวดำเนินการ Bitwise

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
& ไบนารีและตัวดำเนินการคัดลอกบิตไปยังผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง (A &B) =12 ซึ่งก็คือ 0000 1100
| ไบนารี OR โอเปอเรเตอร์ คัดลอกเล็กน้อยหากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง (A | B) =61 ซึ่งก็คือ 0011 1101
^ ตัวดำเนินการ XOR แบบไบนารีจะคัดลอกบิตหากตั้งค่าไว้ในตัวถูกดำเนินการเดียว แต่ไม่ใช่ทั้งสองอย่าง (A ^ B) =49 ซึ่งก็คือ 0011 0001
~ Binary Ones Complement Operator เป็นเอกภาพและมีเอฟเฟกต์ของการ 'พลิก' บิต (~A ) =61 ซึ่งเท่ากับ 1100 0011 ในส่วนเสริมของ 2 เนื่องจากเลขฐานสองที่มีเครื่องหมาย
<< ตัวดำเนินการ Shift ซ้ายแบบไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A <<2 =240 ซึ่งเท่ากับ 1111 0000
>> ตัวดำเนินการกะไบนารีขวา ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A>> 2 =15 ซึ่งก็คือ 0000 1111

ต่อไปนี้คือตัวอย่างที่แสดงวิธีการทำงานกับตัวดำเนินการระดับบิตใน C#

ตัวอย่าง

using System;
namespace Demo {
   class Program {
      static void Main(string[] args) {
         int a = 60; /* 60 = 0011 1100 */
         int b = 13; /* 13 = 0000 1101 */
         int c = 0;
         c = a & b; /* 12 = 0000 1100 */
         Console.WriteLine("Value of c is {0}", c );
         c = a | b; /* 61 = 0011 1101 */
         Console.WriteLine("Value of c is {0}", c);
         c = a ^ b; /* 49 = 0011 0001 */
         Console.WriteLine("Value of c is {0}", c);
         c = ~a; /*-61 = 1100 0011 */
         Console.WriteLine("Value of c is {0}", c);
         c = a << 2; /* 240 = 1111 0000 */
         Console.WriteLine("Value of c is {0}", c);
         c = a >> 2; /* 15 = 0000 1111 */
         Console.WriteLine("Value of c is {0}", c);
         Console.ReadLine();
      }
   }
}

ผลลัพธ์

Value of c is 12
Value of c is 61
Value of c is 49
Value of c is -61
Value of c is 240
Value of c is 15