首页 > 代码库 > 位运算符

位运算符

运算符操作类型结果类型说明举例
NOTIntegerInteger即按二进制形式将每位求反,即1 变为0、0变为1NOT x
ANDIntegerInteger将两者相对应的位进行AND运算,同为1时结果为1,其他为0a AND b
ORIntegerInteger将两者相对应的位进行OR运算,同为0时结果为0a OR b
XORIntegerInteger将两者相对应的位取XOR运算,两者不同时结果为1a XOR b
SHLIntegerInteger将a的二进制向左移动b位,左移一位相当于乘2a SHL b
SHRIntegerInteger将a的二进制向右移动b位,右移一位相当于除2a SHR b

 

若有操作数x,其值的二进制数形式为01110011,执行语句:y:= NOT X,结果y值得二进制形式为:10001100。

若操作数x和y的二进制数形式分别为00110010和01101100,执行语句:  z:= x AND y ,结果y值的二进制形式为:00100000。

若执行124 SHR 2,由于常量124的二进制形式为01111100,则运算的结果为00011111。

值得注意的是,右移操作时原值的低位丢失,高位补零。向左移操作时,原值的高位丢失,低位补0。

执行运算(35 SHR 2),即先把数35右移两位,再把其结果再左移2位,但结果却是32,而不是回到35。

执行运算(-35 SHR 2),结果将是1073741815。这是由于在计算机内部,负数是以补码形式存放的缘故

 

位运算符