GiaoTrinhC++(27Jun21)

(Hoang2711) #1

Thiết kế trang Web


18 • Ông Văn Thông


Giải thích



  • Các toán tử gán nhóm bitwise như &= (and và), |= (or hoặc), ^= (xor exclusive or, hoặc
    ngoại trừ), >>= (shift right, dịch phải), <<= (shift left, dịch trái) thì thực hiện xét giá trị theo
    hệ nhị phân.

  • Một byte có 8 bits, mỗi bit chỉ có thể là on (1) hay off (0). Trị của mỗi bit thay đổi tùy vị
    trí của bit trong byte đó. Trị của byte = tổng trị của các bit trong byte đó, ví dụ số 5 có
    biểu diễn 00000101 = 4 + 1, số 3 có biểu diễn 00000011 = 2 + 1, tương tự, 100 biểu diễn
    01100100 = 64 + 32 + 4 v.v...
    128 64 32 16 8 4 2 1

  • Các phép gán &= (and) , |= (or), ^= (xor) xét từng cặp bit của 2 tác tố để cho ra bit kết quả.


And Cả hai đều On thì kết quả là On, ngoài ra thì kết quả là Off.
5 &= 3 → 00000101 &= 00000011 → 00000001 = 1

Or

Chỉ cần một trong hai On thì kết quả On, cà hai đều Off mới Off
5 ||= 3 → 00000101 &= 00000011 → 00000111 = 4 + 2 + 1 = 7

Xor Hai bit khác nhau thì kết quả On, giống nhau thì Off^
5 ^= 3 → 00000101 &= 00000011 → 00000110 = 6 = 4 + 2 = 6


  • Phép shift right >>= dịch chuyển các bit về bên phải bao nhiêu vị trí, các bit cuối bên phải
    có thể bị rơi mất, ví dụ 5 >>= 3 là số 00000101 dịch qua phải 3 vị trí → 00000000 = 0 vì 3
    bit cuối bị rơi ra ngoài.

  • Phép shift left <<= dịch chuyển các bit về bên trái bao nhiêu vị trí, các bit cuối bên phải
    được bù bằng 0, các bit bên trái có thể bị rơi mất, ví dụ 5 <<= 3 là số 00000101 dịch qua
    phải 3 vị trí → 00101000 = 32 + 8 = 40.


3. Các toán tử so sánh C++


Toán tử so sánh được sử dụng để so sánh hai giá trị. Giá trị trả về của phép so sánh là true (1)
hoặc false (0). Trong ví dụ sau, chúng ta sử dụng toán tử (>) lớn hơn để tìm hiểu xem 5 có lớn
hơn 3 hay không:
Ví dụ: #include
using namespace std;
int main() { int x = 5; int y = 3;
cout << x << " > " << y << " = " << (x > y); return 0; }
Kết quả: 5 > 3 = 1


Bảng liệt kê các toán tử so sánh:


Ops Tên Ví d ụ Kiểm chứng và kết quả
== Equal to x == y int x = 5, y = 3; cout << (x == y); 0
!= Not equal x != y int x = 5, y = 3; cout << (x != y); 1
> Greater than x > y int x = 5, y = 3; cout << (x > y); 1
Free download pdf