ALL BITWISE and SOME BITWISE
The ALL BITWISE and SOME BITWISE keywords are used for testing the bits in an integral type. If all of the set bits in a property match the mask, ALL BITWISE is true. If at least one of the set bits in a property matches the mask, SOME BITWISE is true.
Operators can be applied to both scalar (single-value) properties and vector (multiple-value) properties. The following code example shows how to test property values with ALL BITWISE and SOME BITWISE.
ALL array ALL BITWISE [values?]
ALL array SOME BITWISE [values?]
Comparison Operators
The supported comparison operators for BITWISE tests are listed in the following table.
Comparison operator | Description |
---|---|
= | Equal to |
!= or <> | Not equal to |
The logic of BITWISE tests is listed in the following table.
BITWISE test and comparison operator | Logic |
---|---|
= ALL BITWISE | Property & Mask = Mask |
= SOME BITWISE | Property & Mask != 0 |
<> ALL BITWISE | Property & Mask != Mask |
<> SOME BITWISE | Property & Mask = 0 |
The following truth table uses example binary and hex values to demonstrate the logic of BITWISE tests.
Property in binary (hex) | Mask in binary (hex) | Property & Mask = binary (hex) | = SOME BITWISE | = ALL BITWISE |
---|---|---|---|---|
0001 (0x1) | 0001 (0x1) | 0001 (0x1) | True | True |
0001 (0x1) | 0011 (0x3) | 0001 (0x1) | True | False |
0011 (0x3) | 0001 (0x1) | 0001 (0x1) | True | True |
0010 (0x2) | 0001 (0x1) | 0000 (0x0) | False | False |
11110000 (0xF0) | 00000011 (0x03) | 00000000 (0x00) | False | False |
11110010 (0xF2) | 11110010 (0xF2) | 11110010 (0xF2) | True | True |
11110010 (0xF2) | 00000011 (0x03) | 00000010 (0x02) | True | False |
Example
The following is an example of the ALL BITWISE predicate.
Select system.itemnamedisplay, system.FileAttributes from SystemIndex Where System.FileAttributes <> ALL BITWISE 0x4 AND Scope = 'file:c:\bitwise'
Related topics
-
Conceptual