不对呀,在立即面板打:
?asc("盁")
结果是:
-20321

解决方案 »

  1.   

    asc()返回的是byte类型的吧,扩展ASCII没有负数的吧
      

  2.   

    同楼上
    Chr(48)
    打出是"0"
    不要搞反了
      

  3.   

    Private Sub Command1_Click()
        Print Asc("盁") '-20321
        Print Chr(-20321) '盁
        Print Chr(Asc("盁")) '盁
        Print Chr(-20321) = Chr(Asc("盁")) 'True
    End Sub'汗字为 负
    'VB5.0+Win98Se
      

  4.   

    我的一点看法:
    ASC()可以返回包括汉字在内的字符的ASC码,但是由于UNICODE的缘故,汉字ASC返回的是负数,这时只要加上65536(或许是65535),就是真正的机内码了,得到的这个数字是integer型的,把它右移8位得到汉字区位码的高位码,截取低8位得到汉字区位码的低位码。
      

  5.   

    debug.print chr(65536-30401)

    debug.print chr(65535-30401)
      

  6.   

    直接用chr()就行啊,只不过是负数
      

  7.   

    debug.Print Asc("盁") '-20321
    debug.Print Chr(-20321) '盁
    debug.Print Chr(Asc("盁")) '盁
    debug.Print Chr(-20321) = Chr(Asc("盁")) 'True
    说明汉字的ASCII码为负值。
      

  8.   

    汉字的占两个字节
    每个字节的值都大于等于128
    转化为Integer型后(Asc返回的数据类型)
    由于最高位是符号位
    所以它的字符代码<0同时请大家注意
    Asc返回的不是ASCII码,而是 字符代码标准ASCII码只有7位
    值范围:[0,127]