标签:
运算符 | 操作类型 | 结果类型 | 说明 | 举例 |
NOT | Integer | Integer | 即按二进制形式将每位求反,即1 变为0、0变为1 | NOT x |
AND | Integer | Integer | 将两者相对应的位进行AND运算,同为1时结果为1,其他为0 | a AND b |
OR | Integer | Integer | 将两者相对应的位进行OR运算,同为0时结果为0 | a OR b |
XOR | Integer | Integer | 将两者相对应的位取XOR运算,两者不同时结果为1 | a XOR b |
SHL | Integer | Integer | 将a的二进制向左移动b位,左移一位相当于乘2 | a SHL b |
SHR | Integer | Integer | 将a的二进制向右移动b位,右移一位相当于除2 | a 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。这是由于在计算机内部,负数是以补码形式存放的缘故
标签:
原文地址:http://www.cnblogs.com/JasonBloge/p/5838286.html