VBint转char求助
C#: Z[zindex + i + 7] = (char)((Z[zindex + (i & 7)] << 9) | (Z[zindex + (i + 1 & 7)] >> 7))怎样转成VB?
C#哪里可以通过,但是VB不行;我这样做,转成char的时候就超出范围了:“参数“CharCode”必须在 -32768 到 65535 的范围内。”
(我这样写的)VB: Z(zindex + i + 7) = ChrW((AscW(Z(zindex + (i And 7))) << 9) Or (AscW(Z(zindex + (i + 1 And 7))) >> 7))
int a = Z[zindex + (i & 7) ]<< 9 | (Z[zindex + (i + 1 & 7)] >> 7); 这里生成了一个比较大的int(测试数据):14468840 ;VB哪里调试也是这样
[解决办法]
不知道新版本VB有没有简单方法,过去应是将h分解到字节数组中,然后
Dim EC As System.Text.Encoding = System.Text.Encoding.UTF8
Dim C As String = EC.GetString(Buf)
PS:是UTF8么?UTF8下14468840对应'?'?
[解决办法]
Dim g As Char = Convert.ToChar(h And &HFFFF)
或者关溢出检查
Dim g As Char = Convert.ToChar(CUShort(h))