简单的语法问题

caitian6 2010-04-16 04:37:29
With My3fPMComm1
If (.PA And &H800) <> 0 Then
labpa.Caption = "DBP overrun"
If (.PA And &H8000) <> 0 Then
labpa.Caption = "HR overrun"


.PA And &H800 是什么意思? My3fPMComm1的PA与运算? 还是或运算?
还有&H800和 &H8000 是什么意思?
本人很少用VB

...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
caitian6 2010-04-29
  • 打赏
  • 举报
回复
结贴晚了,不好意思。
chinaboyzyq 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 caitian6 的回复:]
.PA And &H800 是什么意思? My3fPMComm1的PA与运算? 还是或运算?
还有&H800和 &H8000 是什么意思?

[/Quote]

VB中的And有两种功能:一是逻辑与,二是按位与,你这里是按位与。
.PA And &H800 '.PA的值与十六进制的800按位与。
VB中用&H开头的表示16进制数
clear_zero 2010-04-16
  • 打赏
  • 举报
回复
按位与计算
贝隆 2010-04-16
  • 打赏
  • 举报
回复
按位与计算
yangxie5201314 2010-04-16
  • 打赏
  • 举报
回复
楼上正解
舉杯邀明月 2010-04-16
  • 打赏
  • 举报
回复
不好意思,1F 看错了:

.PA And &H800 是检查第11位,
.PA And &H8000 才是检查第15位。

&H 是表示十六进制数据。用二进制数表示:
&H800 ---> 00001000 00000000
&H8000 ---> 10000000 00000000
舉杯邀明月 2010-04-16
  • 打赏
  • 举报
回复
My3fPMComm1.PA 应该是 Integer 或 Long 类型的成员变量。

  If (.PA And &H800) <> 0 Then 这里是进行‘位与’运算,实质就是检查 My3fPMComm1.PA 的二进制第15位(最低位为0位)是否为 1 。如果为1,(.PA And &H800) <> 0结果为True,否则结果就为False。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧