CShort()转换之后的数据是双字节整数,强制转换单字节整数单字节前补&H00,转换后的数值永远是正数。
[/quote]
Dim UBI_A1 As Short =VAL("&H" & "E0"),这样可以么[/quote]
Val()把("&H" & "E0")强制转换成Duble类型,也做不到
VB的单字节类型声明只有BYTE,但它是无符号的0~255;其他整数型是2字节或者更多字节,&HE0强制转换成其他整数型都不可能是负数。
单字节整数要想转换成负数需要做个是否大于&H7F的判断。
Dim UBI_A1 As Short = CShort("&H" & "E0")
If UBI_A1 > &H7F Then
UBI_A1 = UBI_A1 - &H100
End If