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 ด้านซ้าย)