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:

pqp & qp | q
0000
0101
1111
1001

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:


toan_tu_trong_sqlite.jsp