位操作 | 说明 |
---|---|
and | 按位与,对操作数的二进制数按位与 |
not | 按位取反,对操作数的二进制数按位取反 |
and | 按位与,对操作数的二进制数按位与 |
or | 按位或,对操作数的二进制数按位或 |
xor | 按位异或,对操作数的二进制数按位异或 |
shl | 向左移位,对操作数的二进制数按位左移 |
shr | 向右移位,对操作数的二进制数按位右移 |
举例:
字节型变量 a 和 b,它们的值分别为:00000101 和 00000110,即十进制中的 5 和 6
a:00000101
b:00000110
not a = 11111010,即十进制中的 -6
a and b = 00000100,即十进制中的 4
a or b = 00000111,即十进制中的 7
a xor b = 00000011,即十进制中的 3
a shl 2 = 00010100,即十进制中的 20
a shr 2 = 00000001,即十进制中的 1
xor 用于 Boolean 时,相当于 <>
True xor True = False
False xor False = False
True xor False = True
{
获取字节中第 N 位的值,1 返回True,0 返回 False }
function GetBit(const AByte, AGetBitNum: Byte): Boolean;
begin
if AGetBitNum in [1..8] then
Result :