首页
社区
课程
招聘
[讨论]写注册机时发现的问题
发表于: 2008-8-31 05:22 4091

[讨论]写注册机时发现的问题

2008-8-31 05:22
4091
Dim a As Long
Dim tmp As Long
Dim b As Integer
a = 5
b = &HE500
tmp = a Or b

tmp 的值 怎么会是-6907的?

TMP 不是应该= &hE505   10进制就是
58629的吗  

有人遇到过这个问题吗 VB 位操作 那么弱吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
2
没用过VB以下只是猜测
可能是因为B被申明为带符号短整数,因此在变量转换时被作为负数处理了,也就是说被转换成了带符号长整数FFFFE500,然后和整数5位或后的结果为FFFFE505,也就是十进制数-6907
做这种或运算时可以把高位制零后也就是自己期望的值了
2008-8-31 07:40
0
游客
登录 | 注册 方可回帖
返回
//