请教一下 vb 十进制跟十六进制怎么比较大小
例如  Dim a As long
       a = 1234567
      现在要拿这个值跟一个十六进制的比较
      a<> &H12D687 为什么是正确的呢
好郁闷呀

解决方案 »

  1.   

    应该不会啊,返回false
    debug.print a <> &H12D687 
      

  2.   

    楼上大侠麻烦你给我联系联系吧
    谢谢了
    我QQ26164060 MSN [email protected]我有太多搞不明白了
      

  3.   

    能正常比较
    不过返回的是true呀
    两个数是相等的
    比较不等就返回true了
      

  4.   

    LZ不是吧,是返回FALSE啊Dim a As Long      a = 1234567
          '现在要拿这个值跟一个十六进制的比较
          If a = &H12D687 Then
            MsgBox "等于"
          End If
      

  5.   


    试过了,返回 False。
      

  6.   

    Declare Function CT_reset Lib "crwicc.dll" (ByVal fd As Long) As Long Dim a As Long
    a = CT_reset(hPort)
    MsgBox (a <> &H9000)单步调试的时候 a的值是36864 为什么跟&H9000做不等比较就是true呢
      

  7.   


    我QQ26164060 MSN [email protected]
    哪为大仙有空了指导一下小弟吧,要因为vb疯掉了
      

  8.   

    true 表示表达式 (a <> &H9000) 成立,即 a ≠ &H9000,而不是表示 a = &H9000。
      

  9.   

    是啊
    我a=36864  转换成16进制就是9000啊
    为什么做不等比较会返回true呢 两个数应该是相等的吧
      

  10.   

    VB 默认用最小数据类型存放常量。
    &H9000 只要 2 个字节就了存储,用 Integer 类型,作为有符号整数,最高是符号位,所以 &H9000 = -28672。
    a 作为 Long 类型,常量也应该用 Long 类型,加后缀 &,所以应该写成
    MsgBox (a <> &H9000&)