Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Toán tử dịch bit Left Shift (<<) và Right Shift (>>) trong C#

Toán tử dịch trái (Left Shift <<)

Giá trị toán hạng bên trái được dịch chuyển sang trái số bit chỉ định bởi toán hạng bên phải. Tương đương nhân với 2n.

Toán tử dịch phải (Right Shift >>)

Giá trị toán hạng bên trái được dịch chuyển sang phải số bit chỉ định bởi toán hạng bên phải. Tương đương chia cho 2n (làm tròn xuống).

Ví dụ

using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 60;  // 60 = 0011 1100 (nhị phân)
            int b = 13;  // 13 = 0000 1101
            int c = 0;
            
            c = a << 2;  // 240 = 1111 0000
            Console.WriteLine("Value of c (a << 2) is {0}", c);
            
            c = a >> 2;  // 15 = 0000 1111
            Console.WriteLine("Value of c (a >> 2) is {0}", c);
            
            Console.ReadLine();
        }
    }
}

Kết quả

Value of c (a << 2) is 240
Value of c (a >> 2) is 15

Giải thích nhị phân:

a = 60  = 0011 1100
a << 2  = 1111 0000 = 240 (nhân 4)
a >> 2  = 0000 1111 = 15  (chia 4)

Ứng dụng: Tối ưu hóa nhân/chia lũy thừa 2, xử lý flag bit, mã hóa, nén dữ liệu.