【问题标题】:What is calculated between two numbers using the AND operator in VBScript?在 VBScript 中使用 AND 运算符在两个数字之间计算什么?
【发布时间】:2020-06-10 12:59:41
【问题描述】:
Option explicit
Dim VarA
Dim VarB
VarA = 2560 and 3
VarB = 2560 and 4
wscript.echo "VarA is "&VarA
wscript.echo "VarB is "&VarB

显示

VarA is 0
VarB is 0

请有人解释一下VarAVarB 是如何产生0 的。

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    它完全按照你的要求去做。

    来自the documentation for the And Operator

    当且仅当两个表达式的计算结果都为 True,结果为 True。如果任一表达式的计算结果为 False,则结果为 False。逻辑运算没有短路。所有表达式都被计算。

    在这种情况下,虽然@MCND mentioned in the comments 再次来自文档:

    And 运算符还对两个数值表达式中位置相同的位进行按位比较,并在 result 中设置相应的位。

    因此0 结果而不是显式布尔值。

    但是,如果您想将这些值相加,则需要使用 Addition + Operator

    将两个数字相加。

    Option Explicit
    Dim VarA
    Dim VarB
    VarA = 2560 + 3
    VarB = 2560 + 4
    WScript.Echo "VarA is " & VarA
    WScript.Echo "VarB is " & VarB
    

    输出:

    VarA is 2563
    VarB is 2564
    

    有用的链接

    【讨论】:

    • And 运算符还 “对两个数值表达式中相同位置的位进行按位比较”,因此 OP 在变量中获得了 0
    • @MCND 绝对正确,已修改答案。谢谢。
    猜你喜欢
    • 2019-05-20
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2020-08-05
    • 2022-08-17
    • 2016-05-25
    相关资源
    最近更新 更多