Toán tử thao tác bit trong SQLite
Toán tử thao tác bit làm việc trên các bit và thực hiện các phép toán trên từng bit. Bảng sự thật cho & và | như sau:
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
Giả sử nếu A = 60; và B = 13; thì trong định dạng nhị phân, chúng sẽ là như sau:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
Bảng dưới liệt kê các toán tử thao tác bit được hỗ trợ bởi ngôn ngữ SQLite:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
& | Toán tử và nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng | (A & B) cho kết quả là 12 mà là 0000 1100 |
| | Toán tử hoặc nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng | (A | B) cho kết quả là 61 mà là 0011 1101 |
~ | Toán tử đảo bit là toán tử một ngôi. Đảo bít 1 thành 0 và ngược lại | (~A ) cho kết quả là -61 mà là 1100 0011 in 2's complement form due to a signed binary number. |
<< | Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải. | A << 2 cho kết quả là 240 mà là 1111 0000 |
>> | Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải | A >> 2 cho kết quả là 15 mà là 0000 1111 |
Ví dụ
Ví dụ sau minh họa cách sử dụng của toán tử thao tác bit trong SQLite:
sqlite> .mode line sqlite> select 60 | 13; 60 | 13 = 61sqlite> select 60 & 13; 60 & 13 = 12sqlite> select 60 ^ 13; 10 * 20 = 200 sqlite> select (~60); (~60) = -61sqlite> select (60 << 2); (60 << 2) = 240sqlite> select (60 >> 2); (60 >> 2) = 15
Các bài học SQLite phổ biến khác tại VietJack:
- SQLite - Xóa bảng
- SQLite - Truy vấn Insert
- SQLite - Truy vấn Select
- SQLite - Toán tử
- SQLite - Biểu thức
- SQLite - Mệnh đề Where
toan_tu_trong_sqlite.jsp
Bài viết liên quan