如果我得到正确的逻辑,那么你的例子是不正确的。
Asc("M") = 77 = 0x4D Asc("E") = 69 = 0x45 Asc("e") = 101 = 0x65
也就是说,“ME”的数字表示是17741(0x454D),而25933(0x654D)对应于“Me”。
至于你的代码,它使用高字节的第一个字符和低字节的第二个字符,但似乎应该反之亦然:
WScript.Echo Str2Num("Me") ' 25933 WScript.Echo Str2Num("ME") ' 17741 Function Str2Num(Str) ch1 = Left(Str, 1) ch2 = Mid(Str, 2, 1) Str2Num = CDbl(Asc(ch2) * 256 + Asc(ch1)) End Function