注册 登录
编程论坛 ASP技术论坛

汉字的ASC码到底是加65535还是65536?

发布于 2008-11-06 10:39, 1470 次点击
Private function toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte=""
For i=1 To Len(Str)
c=mid(Str,i,1)
iCode =Asc(c)
If iCode<0 Then iCode = iCode + 65535
If iCode>255 Then
iLow = Left(Hex(Asc(c)),2)
iHigh =Right(Hex(Asc(c)),2)
toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)
Else
toByte = toByte & chrB(AscB(c))
End If
Next
End function
End Class


为什么里面的If iCode<0 Then iCode = iCode + 65535,这行用的是65535,而不是65536呢?不是说一个汉字的ASC函数值(是负数)加上65536后就是他真正的码值吗? 为什么这里用了65535呢?
2 回复
#2
multiple19022008-11-08 10:32
负数先减1再加65536
#3
devell2008-11-09 09:04
可能是0也算进去了吧,65535
1