AND
Result = Expression AND Expression
对两个布尔表达式进行逻辑“与”操作,或者对两个整型数进行数值“与”操作。
字符串和对象会自动转换为布尔值。
空字符串或空对象转换为
FALSE
,其他值转换为
TRUE
。
自从 3.17
如果其中一个操作数是浮点值,则会引发错误。
在Gambas 3.17之前,浮点值被静默地转换为布尔值,导致无用的结果。
逻辑“与”操作真值表(T:真,F:假):
A
|
B
|
A AND B
|
F
|
F
|
F
|
F
|
T
|
F
|
T
|
F
|
F
|
T
|
T
|
T
|
相应二进制位数值“与”操作真值表:
A
|
B
|
A AND B
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
数值“与”操作能用来检测一个数的某个二进制位。也可以对一个数的某些二进制位进行屏蔽。下表给出一些怎样对两个整数使用“与”操作的例子。
表达式
|
说明
|
10 AND 20 = 0
|
10 =二进制 01010
20 =二进制 10100
所以 10 AND 20 = 0
|
10 AND -20 = 8
|
10 =二进制 00000000000000000000000000001010
-20 =二进制 11111111111111111111111111101100
所以 10 AND -20 = 8 (二进制 1000)
|
20 AND -20 = 4
|
20 =二进制 00000000000000000000000000010100
-20 =二进制 11111111111111111111111111101100
所以 20 AND -20 = 4 (二进制 100)
|
示例
PRINT TRUE AND FALSE
PRINT TRUE AND TRUE
PRINT 7, Bin(7, 16)
PRINT 11, Bin(11, 16)
PRINT 7 AND 11, Bin(7 AND 11, 16)
7 0000000000000111
11 0000000000001011
3 0000000000000011
DIM A , B AS BOOLEAN
A = 10 < 20
B = 20 > 30
IF A AND B THEN
PRINT "Both A and B are TRUE"
ELSE
PRINT "Either A or B or both are FALSE"
ENDIF
Either A or B or both are FALSE
参见