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 :) .
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