Compare Bits
Computers use binary numbers internally. That’s because they don’t have 10 fingers to count on; they have only 2: on and off, which represent 1 and 0, respectively. Knowing that helps you understand another use for the operators in Table 3-18—Boolean operators can also be used in mathematical operations to change the individual bits that make up a number, as illustrated by the following code:
Sub ToBorNotToB( )
Dim b As Byte
b = 93
Debug.Print b, Not b, b Or Not b
' Displays: 93 162 255
End SubIn the preceding code, Not and Or have a mathematical effect on b. Specifically, Not returns the bits that are 0 (255 - b) and Or combines the bits in b and Not b (93 + 162). These are called bitwise operations and they make more sense if you look at b as a binary number (Figure 3-3).
Bitwise operations are used to determine if a number contains one or more bit flags . Bit flags are numeric constants that can be combined in a single number without interfering with each other, as shown in Figure 3-4.
Figure 3-4 illustrates that the result of the VarType function can contain both the vbArray flag and any of the other type flags. For instance, vbArray And vbVariant indicates an array of variants. You can test if a variable contains an array of variants by combining the type flags with the Or operator:

Figure 3-3. Evaluating bitwise operations
Figure 3-4. VbVarType constants ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access