ASC()的值是怎样计算来,它与16进制ASCIA有关系嘛?
中文字通常ASC()计算出来是负数,我曾经计算了一个‘我’字,ASCIA码是 CE D2但化为带符号的十进制后仍然与VB的ASC(“我”)计算出来的值不等。
那么ASC()计算出来的整数到底是什么值?

解决方案 »

  1.   

    Asc 函数
          返回一个 Integer,代表字符串中首字母的字符代码。就是ASCII码的值,注意是首字母
    例如:
    Dim MyNumber
    MyNumber = Asc("A")   ' 返回 65。
    MyNumber = Asc("a")   ' 返回 97。
    MyNumber = Asc("Apple")   ' 返回 65。
      

  2.   

    在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。注意    AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
      

  3.   

    一样啊,你试一下:Debug.Print Hex(Asc("我"))
    一样是CED2
    因为Asc输出的是带符号整数,所以会出现负数。
      

  4.   

    Asc 函数
          返回一个 Integer,代表字符串中首字母的字符代码。就是ASCII码的值,注意是首字母
    例如:
    Dim MyNumber
    MyNumber = Asc("A")   ' 返回 65。
    MyNumber = Asc("a")   ' 返回 97。
    MyNumber = Asc("Apple")   ' 返回 65。
      

  5.   

    Asc 函数
          返回一个 Integer,代表字符串中首字母的字符代码。语法Asc(string)必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。说明在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。注意    AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。DBCS
    使用 1 或 2 字节来表示一字符的字符集,超过个 256 字符也可表示Unicode
    国际标准化组织 (ISO) 字符标准。Unicode 使用 16 位 (2 字节) 编码方案,允许 65,536 个不同的字符空间。Unicode 包含标点符号、数学符号、修饰符号等的表示。
    看来你应该用AscW
      

  6.   

    我意思想知道它得值跟本机的ASCIA有什么联系,两者计算出来的值是不相同