为什么AND的结果不一样呢?
Msgbox Val(“1000”) AND Val(“1001”) ---=1000
Msgbox Val(“1001011”) AND Val(“1000000”) ---=99936,为什么不是1000000呢
谢谢
问题点数:20、回复次数:8Top
1 楼Drong([伤口])回复于 2005-11-01 09:47:43 得分 0
And 只对二进制进行运算 运算出来的结果又转换为十进制Top
2 楼wqsea(谢谢帮助)回复于 2005-11-01 09:50:47 得分 0
可是1000000转为十进制=64Top
3 楼sally1982(夢)回复于 2005-11-01 10:00:07 得分 0
val("1010")and val("1000")------992Top
4 楼weiweiplay(虚幻)回复于 2005-11-01 10:12:45 得分 10
and 是按位比较
1001011 转换成2进制为 11110100011000110011
1000000 转换成2进制为 11110100001001000000
and后的结果就是 11110100001000000000 就是999936Top
5 楼chewinggum(口香糖·个人二五计划第一年)回复于 2005-11-01 10:27:26 得分 10
Val(“1001011”)得到的是十进制数,不是二进制的。Top
6 楼wqsea(谢谢帮助)回复于 2005-11-01 10:36:07 得分 0
了解
现在想的是 string “1000”就是二进制的“1000”呢?Top
7 楼weiweiplay(虚幻)回复于 2005-11-01 10:58:23 得分 0
不是,要转换成二进制的需要自己去做
Private Sub Form_Load()
Dim a, b, i As Long
Dim s As String
a = 1001011
s = Str$(a)
For i = Len(s) To 1 Step -1
If Val(Mid(s, i, 1)) = 1 Then b = b + 2 ^ (Len(s) - i)
Next i
MsgBox b
End Sub
Top
8 楼wqsea(谢谢帮助)回复于 2005-11-01 14:17:03 得分 0
谢谢Top




