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

Các phép dịch bit (shift operations) trong ngôn ngữ C

Phép dịch trái (Left Shift <<)

Dịch trái 1 lần → giá trị gấp đôi.

Ví dụ: a = 10; a << 1 = 20

Phép dịch phải (Right Shift >>)

Dịch phải 1 lần → giá trị giảm một nửa (chia 2).

Ví dụ: a = 10; a >> 1 = 5

Phép lấy phần bù (Complement ~)

~a = -(a + 1). Ví dụ: ~9 = -10.

Chương trình minh họa

#include <stdio.h>

int main() {
    int a = 9;
    printf("Right shift 1: %d\n", a >> 1);  // 4
    printf("Left shift 1:  %d\n", a << 1);  // 18
    printf("Complement:    %d\n", ~a);      // -10
    printf("Right shift 2: %d\n", a >> 2);  // 2
    printf("Left shift 2:  %d\n", a << 2);  // 36
    return 0;
}

Kết quả

Right shift 1: 4
Left shift 1: 18
Complement: -10
Right shift 2: 2
Left shift 2: 36