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

ตัวดำเนินการ Bitwise Right Shift ใน C#

Bitwise Right Shift (>>) ขยับบิตของอเปรานด์ซ้ายไปทางขวา จำนวนบิตตามอเปรานด์ขวา

ตัวอย่าง: 60 (0011 1100) >> 2 = 15 (0000 1111)

โค้ดตัวอย่าง

using System;
namespace Demo {
    class Program {
        static void Main() {
            int a = 60;  // 0011 1100
            int b = a >> 2; // 0000 1111 = 15
            Console.WriteLine("Value of b is {0}", b);
            Console.ReadLine();
        }
    }
}

คำอธิบาย: การขยับขวา n บิต เทียบเท่าการหารด้วย 2ⁿ (สำหรับเลขบวก)

  • 60 >> 1 = 30 (60/2)
  • 60 >> 2 = 15 (60/4)
  • 60 >> 3 = 7 (60/8 = 7.5 → truncate)

หมายเหตุ: สำหรับ Signed integer (int, long) เป็น Arithmetic Shift (คง sign bit) สำหรับ Unsigned เป็น Logical Shift (เติม 0 ด้านซ้าย)