Lập trình

Lập trình

Thứ Sáu, 20 tháng 11, 2015

Cách hoạt động của bitwise ~ trong C++

bitwise "~" là phép toán thao tác trực tiếp trên các bit. Cụ thể : ~0 == 1 và ~1 == 0
Nhưng trong một số trường hợp khi in ra phép toán ~ ra  màn hình lại cho kết quả âm : cout << ~1; // -2.
Lý do là : mỗi số được biểu diễn qua hệ nhị phân thông qua 8 bit (tức là 1 byte)

1 : 0000 0001
khi thao tác phép toán ~ trên 1 ta được như sau :
1   :  0000 0001
~1 :  1111 1110 = 254

Và các trình dịch thường trừ nó đi 256. Tức là ~1 = 254 - 256 = -2.

Cảm ơn các bạn đã xem :) .

Không có nhận xét nào:

Đăng nhận xét