vb表达式里and两边都有数字是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:00:59
比如下面这段代码:
Dim a As Integer
a = 10 And 5 / 8 Or 3

这段代码的意思可能就是a等于10 And 5除以8 Or 3,那么这里的10 And 5和8 Or 3分别是什么意思呢?
照这样说的话10 And 5 应该等于0,而 8 Or 3 应该等于11 ,但这整条表达式的答案是3,这应该怎么解释?

And 按位与运算
如10的2进制数为1010
5的2进制数为101
则 10 And 5 为
1010 And 0101 = 0000 = 0

-----------------------------

Or 按位或运算

如8的2进制数为1010
3的2进制数为11
则 8 Or 3 为
1000 Or 0011 = 1011 = 11

其实这只是简单的逻辑运算
首先搞懂and为逻辑与,例如a,b均为逻辑值,则只有a,b同为“ture“时,a and b为ture
而or怎是逻辑或,还是上边的例子,只要a,b中只要有一个是”ture” a or b为“ture”
同时逻辑运算的顺序为:not-and-or-xor
所以这题的意思是a同时等于10和5除于8或者等于3
此时可以把“a同时等于10和5除于”看做逻辑A,“a等于3”看做逻辑B,中间用Or连接,所以
该题转化为a=A Or B,很显然A为Fasle, B为Ture,所以
最终答案为a=3

实际上是指的是逻辑运算,按零为:false 非零为:true原则。
所以 5/8=0 整除
a=true and false or true
a=true
所以a为逻辑值True;

1楼的解释是对的,在VB中,and 虽然是逻辑运算符,但在两边是数字时,实际是进行的按位与,同样,or not 也是一样道理,另外,这些运算符的优先级低于算术运算符。a = 10 And 5 / 8 Or 3 即 10 And 0.625 Or 3---- 10 And 0 Or 3---0 Or 3 --- 3
又如:4 and 2=0
在c/c++中,逻辑运算和位运算是有不同的操作符的,&& 逻辑与运算符,& 按位与,|| 逻辑或运算符,| 按位或。