bitwise

Màu nền
Font chữ
Font size
Chiều cao dòng

Toán tử bitwise giống nh­ các toán tử lôgic AND , OR , XOR  và NOT nh­ng toán tử bitwise tác động với từng cặp bit t­ơng ứng của hai toán hạng.

ØĐặt (hay xoá) một bit trên thanh ghi, ô nhớ hoặc cổng ra (Out): Việc đặt (=1) hay xoá (=0) mà không làm ảnh h­ởng đến các bit còn lại đ­ợc thực hiện bằng việc bitwise giá trị byte (hay từ)  với từ bitmask ( từ này có tác dụng để “che” các bit còn lại trên cơ sở hai nhận xét sau:

Ø      Một bit nhị phân bất kỳ AND với 0 sẽ cho kết quả bằng 0 và AND với 1 sẽ cho kết quả bằng chính nó.

Ø      Một bit nhị phân bất kỳ OR với 1 sẽ cho kết quả bằng 1 và OR với 0 sẽ cho kết quả bằng chính nó.

 * Vậy khi muốn đặt một bit thứ i của cổng n bit lên “1” ta thực hiện theo hai b­ớc:

   1- Đọc giá trị hiện tại của cổng (không cần quan tâm đến kết quả bằng bao nhiêu).

   2- Xuất ra cổng giá trị bằng giá trị đó OR với từ bitmask bằng 2i (tức là một số nhị phân có giá trị 1 ở bit thứ i, các bit còn lại bằng 0).

      Khi muốn xoá một bít thứ i của cổng n bít về “0”, ta cũng thực hiện theo 2 b­ớc.

B­ớc 1 nh­ trên nh­ng b­ớc 2 là xuất ra cổng giá trị hiện tại AND với từ bitmask bằng (2n-1)-2i ,(bitmask là 1 số nhị phân có giá trị 0 ở bít thứ i còn lại bằng 1 ở các bít còn lại).

Ø  Xác định giá trị của một bit trên cổng vào (In)

ØCũng dựa vào hai nhận xét trên có thể dùng các toán tử bitwise với các từ bitmask để “che” các bit còn lại trong việc xác định giá trị của bit cần kiểm tra.

ØMuốn xác định giá trị của bit thứ i trong cổng vào n bit ta AND với từ bitsmak có giá trị bằng 2i (tức là từ có bit thứ i bằng 1, các bit còn lại bằng 0). Nếu kết quả bằng 0 thì bit thứ i bằng 0 và ng­ợc lại nếu kết quả khác 0 (bằng 2i) thì bit thứ i bằng 1.

Toán tử bitwise giống nh­ các toán tử lôgic AND , OR , XOR  và NOT nh­ng toán tử bitwise tác động với từng cặp bit t­ơng ứng của hai toán hạng.

ØĐặt (hay xoá) một bit trên thanh ghi, ô nhớ hoặc cổng ra (Out): Việc đặt (=1) hay xoá (=0) mà không làm ảnh h­ởng đến các bit còn lại đ­ợc thực hiện bằng việc bitwise giá trị byte (hay từ)  với từ bitmask ( từ này có tác dụng để “che” các bit còn lại trên cơ sở hai nhận xét sau:

Ø      Một bit nhị phân bất kỳ AND với 0 sẽ cho kết quả bằng 0 và AND với 1 sẽ cho kết quả bằng chính nó.

Ø      Một bit nhị phân bất kỳ OR với 1 sẽ cho kết quả bằng 1 và OR với 0 sẽ cho kết quả bằng chính nó.

 * Vậy khi muốn đặt một bit thứ i của cổng n bit lên “1” ta thực hiện theo hai b­ớc:

   1- Đọc giá trị hiện tại của cổng (không cần quan tâm đến kết quả bằng bao nhiêu).

   2- Xuất ra cổng giá trị bằng giá trị đó OR với từ bitmask bằng 2i (tức là một số nhị phân có giá trị 1 ở bit thứ i, các bit còn lại bằng 0).

      Khi muốn xoá một bít thứ i của cổng n bít về “0”, ta cũng thực hiện theo 2 b­ớc.

B­ớc 1 nh­ trên nh­ng b­ớc 2 là xuất ra cổng giá trị hiện tại AND với từ bitmask bằng (2n-1)-2i ,(bitmask là 1 số nhị phân có giá trị 0 ở bít thứ i còn lại bằng 1 ở các bít còn lại).

Ø  Xác định giá trị của một bit trên cổng vào (In)

ØCũng dựa vào hai nhận xét trên có thể dùng các toán tử bitwise với các từ bitmask để “che” các bit còn lại trong việc xác định giá trị của bit cần kiểm tra.

ØMuốn xác định giá trị của bit thứ i trong cổng vào n bit ta AND với từ bitsmak có giá trị bằng 2i (tức là từ có bit thứ i bằng 1, các bit còn lại bằng 0). Nếu kết quả bằng 0 thì bit thứ i bằng 0 và ng­ợc lại nếu kết quả khác 0 (bằng 2i) thì bit thứ i bằng 1.

Bạn đang đọc truyện trên: Truyen2U.Pro