30/09/2018, 18:12

Cách sử dụng toán tử >> và << trong C

Mình không hiểu lắm về phép dịch chuyển bit.
Ví dụ như :

int a =0xDEAD;
printf("%d %d %d",a,a>>4,a<<4);

output:

57005 3562 912080.

Ý nghĩa của nó và cách sử dụng như thế nào vậy mọi người.

Ngủ Về Đêm viết 20:16 ngày 30/09/2018

ý nghĩa dịch bit của nó chỉ vậy thôi, viết theo số nhị phân là thấy rõ

57005 --> 1101 1110 1010 1101
3562 --> 1101 1110 1010
912080 --> 1101 1110 1010 1101 0000

Mai Anh Dũng viết 20:20 ngày 30/09/2018

Câu trả lời của @Ngu_Ve_Dem chuẩn rồi, Đạt bổ sung tí cho dễ nhìn

a: 57005 --> 1101 1110 1010 1101
a>>4: 3562 --> 1101 1110 1010 x x x x (dịch phải 4, nên mất 4 số đã đánh dấu x)
a<<4: 912080 --> 1101 1110 1010 1101 0000 (dịch trái 4, nên thêm 4 số 0)
Bài liên quan
0