Msgbox Val(“1000”) AND Val(“1001”) ---=1000Msgbox Val(“1001011”) AND Val(“1000000”) ---=99936,为什么不是1000000呢谢谢

解决方案 »

  1.   

    And 只对二进制进行运算 运算出来的结果又转换为十进制
      

  2.   

    val("1010")and val("1000")------992
      

  3.   

    and 是按位比较
    1001011 转换成2进制为 11110100011000110011
    1000000 转换成2进制为 11110100001001000000
    and后的结果就是       11110100001000000000 就是999936
      

  4.   

    Val(“1001011”)得到的是十进制数,不是二进制的。
      

  5.   

    了解现在想的是 string “1000”就是二进制的“1000”呢?
      

  6.   

    不是,要转换成二进制的需要自己去做
    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