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

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

2008-8-31 05:22
3700
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 位操作 那么弱吗?

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

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