在VB中,汉字比较"男" > "女"它们的ASCII码值是:
Asc("男")= -15152
Asc("女")=-14930我不明白汉字的比较比的是什么?
男和女的ASCII码是怎么求出来的?为什么是负的?恳请哪位高手指点一下。

解决方案 »

  1.   

    Private Sub Command1_Click()
        If Asc("男") > Asc("女") Then
            MsgBox "a"
        Else
            MsgBox "b"
        End If
    End Sub
      

  2.   

    汉字比较中"男" 大于 "女" 
    我想知道汉字的比较比的是什么?
    是不是ASCII码?
      

  3.   

    应该不是比较ASCII,已经演算过
    比如:
    ?asc("铣")-12365 
    ?asc("喜")-12366 
    结果:铣>喜
    而:
    ?asc("根")-18183 
    ?asc("给")-18184 
    但是:根<给
      

  4.   

    囧。。  每个字符在每个不同的编码中其实是用数值表示的。 VB 用的是 Unicode 编码,所以当你用 ASC 某个汉字时得到的是这个汉字在 Unicode 中的数值。 所以按照你的说法,应该是 “男”字的Unicode编码数值大于“女”字的Unicode编码数值
      

  5.   

    汉字比较的应该是Unicode 编码,例如
    Private Sub Form_Click()
        Print Asc("男")   '下面注释是MSDN中的解释
        Print Asc("女")   '返回字符串第一个字符的 ANSI 或 DBCS 字符代码。
        Print AscB("男")
        Print AscB("女")  '返回给定包含二进制数据的字符串第一个字节的值。
        Print AscW("男")
        Print AscW("女")  '返回字符串第一个字符的 Unicode 字符代码。
                          '"男" > "女"
        
        Print
        Print AscW("根")  '根<给
        Print AscW("给")
        Print AscW("铣")  '铣>喜  AscW("铣")的值为-27421,不知为什么?
        Print AscW("喜")
        
        Print "========================"
        
    End Sub感谢toosean, 感谢郭伟,感谢所有关注此事的人。
    只是AscW("铣")是负值,不知为什么?