Không thể dịch hết nhưng thấy đoạn này trong link nói trên:
That is Logical operations compare each pair of corresponding bits in the operands and perform the corresponding logical operation
Các phép toán Logic so sánh từng cặp bit tương ứng (theo thú tự) giữa các toán hạng và thể hiện trên 1 bit tương ứng của kết quả.
[table="ptm"]Assignment |Bits | Value As Integer
a = 0 | 0000000000000000 | 0
b= Not a | 1111111111111111 | -1[/table]
Nghĩa là Phép toán phủ định với toán tử Not sẽ đổi tất cả các bít có giá trị 0 thành bít có giá trị 1 và ngược lại (ngôn ngữ máy dùng 16 bit để thể hiện)
Và cũng thấy 1 thí dụ khác:
[table="ptm2"]Assignment |Bits | Value As Integer
b = 3 | 0000000000000011 | 3
Not b | 1111111111111100 | -4[/table]
Rõ ràng mọi 0 thành 1 và mọi 1 thành 0, dù khó hiểu gần chết.
Xem lại đọan trích:
a = 1 ' true, in the testing sense
b = 2 ' also true using the <>0 criteria
If a And b Then ' this is false because:
' 0000000000000001
' 0000000000000010
' ----------------
' 0000000000000000
[table="ptm3"] Value | Bits| Logical Value
a = 1 | 0000000000000001| True
b = 2 |0000000000000010| True
a and b|0000000000000000| False[/table]
Nếu tính theo từng cặp bit tương ứng thì là
false. (lẽ ra là True).
Chỉ khó hiểu ở chỗ vì sao b= 2 (true) lại là
10 mà không là 01?