我有一个有趣的二元补充问题。
<meta http-equiv="x-ua-compatible" content="IE=10">
<script type="text/vbscript">
HexVal = "F8"
document.write(CLng("&H" & HexVal) & "<br />")
</script>
您可以在IE11(或更早版本?)中运行上述代码,您将看到以下输出:
248
这向我表明,当以十进制形式打印十六进制值时,CLng函数将十六进制值解释为无符号整数。然而,F8实际上是-8两个补码。 如何强制vbscript识别?
答案 0 :(得分:2)
Function TwoComplement8Bits(value)
TwoComplement8Bits=CInt(value)
If TwoComplement8Bits>127 Then
TwoComplement8Bits=-1*((Not (TwoComplement8Bits Or &hff00))+1)
End If
End Function
WScript.Echo TwoComplement8Bits("&hf8")