ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VB6.0运算符的用法(二)

2021-07-13 10:05:05  阅读:176  来源: 互联网

标签:False 用法 运算符 VB6.0 result Null True 表达式


五、逻辑/按位运算符

1、And 运算符

用来对两个表达式进行逻辑连接。

(1)、语法

result = expression1 And expression2

And 运算符的语法具有以下几个部分:

部分          描述

result         必需的;任何数值变量。

expression1    必需的;任何表达式。

expression2    必需的;任何表达式。

(2)、说明

    如果两个表达式的值都是 True,则 result 是 True。如果其中一个表达式的值是 False,则 result 是 False。下列说明如何确定 result:

expression1   expression2    result

True        True          True

True        False          False

True        Null           Null

False       True           False

False       False           False

False       Null            False

Null        True            Null

Null        False           False

Null        Null            Null

    And 运算符还对两个数值表达式中位置相同的位进行逐位比较,并根据下列对 result 中相应的位进行设置:

expression1中的位     expression2中的位    result 

0                    0                   0

0                    1                   0

1                    0                   0

1                    1                   1

 

2、Not 运算符

用来对表达式进行逻辑否定运算。

(1)、语法

result = Not expression

Not 运算符的语法具有以下几个部分:

部分         描述

result         必需的;任何数值变量。

expression     必需的;任何表达式。

(2)、说明

下表说明如何确定 result:

expression    result

True         False

False        True

Null         Null

 

此外,Not 运算符改变任何变量的位值,并根据下列设置 result 中相应的位:

expression中的位     result的位

0                   1

1                   0

 

3、Or 运算符

用来对两个表达式进行逻辑析取运算。

 

(1)、语法

result = expression1 Or expression2

Or 运算符的语法具有以下几个部分:

部分           描述

result          必需的;任何数值变量。

expression1     必需的;任何表达式。

expression2     必需的;任何表达式。

(2)、说明

    如果两个表达式中至少有一个为 True,则 result 为 True。下列说明如何确定 result:

expression1    expression2    result

True          True         True

True          False        True

True          Null         True

False         True         True

False         False         False

False         Null          Null

Null          True         True

Null          False         Null

Null          Null          Null

    Or 运算符也对两个数值表达式中位置相同的位进行逐位比较,并根据下列对 result 中相应的位进行设置:

expression1中的位   expression2中的位    result

0                  0                   0

0                  1                   1

1                  0                   1

1                  1                   1

 

4、Xor 运算符

用来对两个表达式进行逻辑互斥或运算。

(1)、语法

[result =] expression1 Xor expression2

Xor 运算符的语法具有以下几个部分:

部分           描述

result          可选;任何数值变量。

expression1     必需的;任何表达式。

expression2      必需的;任何表达式。

(2)、说明

    如果表达式中有一个而且只有一个值为 True,则 result 为 True。但是,如果表达式中有一个为 Null,则 result 也为 Null。当两个表达式都不为 Null,则根据下列来确定 result:

expression1       expression2         result

True             True               False

True             False              True

False          True               True

False          False               False

    Xor 运算符既可作为逻辑运算符,也可作为位运算符。使用互斥或的逻辑进行的两个表达式的逐位比较,其结果通过下表说明:

expression1中的位     expression2中的位      result

0                    0                     0

0                    1                     1

1                    0                     1

1                    1                     0

 

5、Eqv 运算符

用来对两个表达式进行逻辑等价运算。

(1)、语法

result = expression1 Eqv expression2

Eqv 运算符的语法具有以下几个部分:

部分           描述

result           必需的;任何数值变量。

expression1      必需的;任何表达式。

expression2      必需的;任何表达式。

(2)、说明

    如果有一个表达式是 Null,则 result 也是 Null。如果表达式都不是 Null,则根据下列来确定 result:

expression1      expression2       result

True            True            True

True            False            False

False           True             False

False           False            True

    Eqv 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下列对 result 中相应的位进行设置:

expression1中的位    expression2中的位      result

0                   0                     1

0                   1                     0

1                   0                     0

1                   1                     1

 

6、Imp 运算符

用来对两个表达式进行逻辑蕴涵运算。

(1)、语法

result = expression1 Imp expression2

Imp 运算符的语法具有以下几个部分:

部分            描述

result           必需的;任何数值变量。

expression1      必需的;任何表达式。

expression2      必需的;任何表达式。

(2)、说明

下列说明如何确定 result:

expression1      expression2       result 

True            True            True

True            False            False

True            Null             Null

False           True             True

False           False             True

False           Null              True

Null            True             True

Null            False             Null

Null            Null              Null

    Imp 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下列对 result 中相应的位进行设置:

expression1 中的位    expression2 中的位      result

0                    0                     1

0                    1                     1

1                    0                     0

1                    1                     1

 

六、其它运算符

1、AddressOf 运算符

一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。

(1)、语法

AddressOf  procedurename

Procedurename是必需的,指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。

(2)、说明

    当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的返回值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。

    尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。

    警告:如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。

    注意:可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。

因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。

标签:False,用法,运算符,VB6.0,result,Null,True,表达式
来源: https://www.cnblogs.com/it001xyz/p/15005164.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有