1. &
Toán tử bitwise
Trước đây chúng tôi đã nói rằng tất cả dữ liệu được lưu trữ trong bộ nhớ dưới dạng biểu diễn nhị phân. Vì vậy, cách đây khá lâu, các lập trình viên đã nghĩ ra rất nhiều cách thú vị để làm việc với các số nhị phân. Ví dụ: Java có các toán tử logic hoạt động trên các bit của biểu diễn nhị phân của một số: &
(AND), | (OR)
, ~
(KHÔNG hoặc phần bù) và ^
(XOR - loại trừ hoặc).
a & b
&
(AND)
Toán tử này rất giống với &
toán tử logic (AND), chỉ khác là nó được biểu thị bằng một dấu và chứ không phải hai:
Và nó được áp dụng cho các bit riêng lẻ. Mỗi toán hạng được coi là một mảng các bit và i
bit thứ của kết quả được tính bằng cách sử dụng i
bit thứ của mỗi trong hai toán hạng.
Bit đầu tiên của kết quả sẽ được tính dựa trên bit đầu tiên của số a
và bit đầu tiên của số b
, bit thứ hai — dựa trên bit thứ hai của số a
và bit thứ hai của số b
, v.v.
Toán &
tử (AND) có nghĩa là "bit kết quả chỉ bằng một nếu bit tương ứng của số a
bằng một AND
bit tương ứng của số đó b
bằng một":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Ví dụ:
Ví dụ | Kết quả |
---|---|
|
|
|
|
|
|
|
|
2. |
Toán tử bitwise
Toán tử này rất giống với |
toán tử logic (OR), chỉ khác là nó được biểu thị bằng một đường thẳng đứng chứ không phải hai:
a | b
Và nó được áp dụng cho các bit riêng lẻ. Mỗi toán hạng được coi là một mảng các bit và bit thứ i của kết quả được tính bằng cách sử dụng bit thứ i của mỗi trong hai toán hạng.
Toán tử bitwise |
(OR) có nghĩa là "bit kết quả bằng một nếu bit tương ứng của số a
bằng một OR
bit tương ứng của số đó b
bằng một":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Ví dụ:
Ví dụ | Kết quả |
---|---|
|
|
|
|
|
|
|
|
Chỉ khi các bit tương ứng (các bit ở cùng một vị trí) của cả hai số bằng 0 thì bit tương ứng của kết quả mới bằng 0.
3. Toán tử Bitwise ^
(XOR hoặc "độc quyền hoặc")
Toán XOR
tử, cũng được phát âm là độc quyền hoặc , được biểu thị bằng ^
ký hiệu. Để nhập nó trên bàn phím, hãy nhấn shift + 6 (trên bố cục bàn phím tiếng Anh).
a ^ b
Toán tử này hơi giống với OR
toán tử, kể cả ở chỗ nó có tên tương tự:XOR
Toán tử bitwise ^
(XOR) có nghĩa là "bit kết quả bằng một nếu bit tương ứng của số a
bằng một OR
bit tương ứng của số b
bằng một nhưng không phải cả hai cùng một lúc":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Ví dụ:
Ví dụ | Kết quả |
---|---|
|
|
|
|
|
|
|
|
Chỉ khi các bit tương ứng (các bit ở cùng một vị trí) của cả hai số khác nhau thì bit tương ứng của kết quả mới bằng một . Nếu các bit giống nhau , bit kết quả bằng không .
4. Toán tử Bitwise ~
(NOT, COMPLEMENT)
Tôi nghĩ rằng bạn đã có thể đoán những gì nó làm. Toán tử này rất giống với !
toán tử logic (NOT), nhưng nó được biểu thị bằng dấu ngã , không phải dấu chấm than:
~a
Đây là toán tử một ngôi , có nghĩa là nó áp dụng cho một số duy nhất, không phải hai. Nó xuất hiện trước toán hạng đơn này.
Toán tử bitwise ~
có nghĩa là "bit kết quả là một nếu bit tương ứng của số a
bằng 0 và bằng 0 nếu bit tương ứng của số a
là một":
~1 = 0
~0 = 1
Ví dụ:
Ví dụ | Kết quả |
---|---|
|
|
|
|
|
|
|
|
Toán tử này chỉ đơn giản là thay đổi bit thành 1
và 0
bit 0
thành 1
.
GO TO FULL VERSION