为什么vbScript“And”运算符会导致溢出错误?

时间:2014-10-30 11:31:38

标签: vbscript

为什么这会在按位AND比较期间导致vbScript溢出?

response.Write cDbl(2147483648) And cDbl(1)

1 个答案:

答案 0 :(得分:0)

我使用围绕vbscript函数的服务器端javascript提出了解决此问题的解决方案。它似乎比Eric Lippert文章中提出的要简单得多。

解决方案如下:

<script language="javascript" runat="server">
    //bitand function for JS
    //vbscript cant handle bitwise operations cleanly on values above 2^30
    function bitandJS(a, b) { return a & b }
</script>

然后我将其包装在vbscript函数中以保持应用程序的一致性:

Function bitand(byVal a, byVal b)
    bitand = bitandJS(a, b)  'done via server side JS
End Function

虽然它不像我想的那样干净,例如不得不混合语言,它完美地为我的目的。