上QQ阅读APP看书,第一时间看更新
2.1.4 VBScript中的位运算
VBScript支持位运算,即以二进制形式计算两个整数的值。位运算符会比较相对应的位,然后根据运算规则得到结果。
可用的位运算符如表2-3所示。
表2-3 VBScript中的位运算符
表2-3中的举例只是一种示范,在实际应用中,数字通常是Integer或Long型,或用以&H开头的十六进制形式来表示。
下面看一个简单的范例。
bitwiseOperators.asp
<% '数字106,二进制形式为00000000 01101010,十六进制形式为00 6A '数字153,二进制形式为00000000 10011001,十六进制形式为00 99 response.write (NOT 106) & "<br>" response.write (106 AND 153) & "<br>" response.write (106 OR 153) & "<br>" response.write (&H006A XOR &H0099) & "<br>" response.write (&H006A EQV &H0099) & "<br>" response.write (&H006A IMP &H0099) & "<br>" %>
运行结果如图2-1所示。
图2-1 位操作运行结果
结果中出现了负数,是因为最高位是1,而该位是符号位,1表示负数。
在进行位运算时,应该考虑数据类型、数据字节长度和符号位等问题,参与运算的数值尽量使用十六进制形式表示,把位数写全,这样可以对运算过程看得更清楚一些,避免一些小问题。如对于NOT 106,如果忽略了106的高字节,那么会想当然地以为结果是二进制的10010101,也就是十进制的149,可实际结果是-107,这是天壤之别啊。