ok, giải thích nhanh nhé.
Ví dụ: P1 = b7b6b5b4b3b2b1b0; (bi là bít thứ i)
=> P1 & 1100 0000 (tức 0xC0) = b7b600 0000 (xóa các bit b0 -> b5)
Sau đó, thực hiện lệnh or với các bit của temp (:d post nhầm tẹo). Mình edit lại ngay.
nên (P1 & 0xC0) | temp sẽ có tác dụng chỉ biến đổi 6 bít thấp của P1 mà không ảnh hưởng đến 2 bít cao.
Chắc bạn biết là:
Như thế, muốn xóa bít nào đó thì ta and bit đó với 0, muốn giữ bít đó thì and với 1.
Chúc bạn thành công.
Ví dụ: P1 = b7b6b5b4b3b2b1b0; (bi là bít thứ i)
=> P1 & 1100 0000 (tức 0xC0) = b7b600 0000 (xóa các bit b0 -> b5)
Sau đó, thực hiện lệnh or với các bit của temp (:d post nhầm tẹo). Mình edit lại ngay.
nên (P1 & 0xC0) | temp sẽ có tác dụng chỉ biến đổi 6 bít thấp của P1 mà không ảnh hưởng đến 2 bít cao.
Chắc bạn biết là:
Code:
0 or X = X 1 or X = 1 0 and X = 0 1 and X = X
Chúc bạn thành công.
Comment