0

我正在做从 JavaScript 到VB.NET的代码转换。我被 >>> 操作卡住了。

请参阅下面的示例代码和我的尝试:

JavaScript:

function test(a, b) {
    return (a << b) | (a >>> (32 - b))
}

我在 VB.NET 中的尝试:

Private Function test(ByVal a As Integer, ByVal b As Integer) As Integer
    Return ((a << b) Or (CUShort(a) >> (32 - b)))
End Function

我究竟做错了什么?

4

1 回答 1

1

您应该使用 CUInt 而不是 CUshort。

CUshort 给出了一个只有 16 位大小的 UShort。在 JavaScript 中,所有位操作都是在 32 位中完成的,因此a也应该转换为 32 位无符号类型——即 UInteger。

于 2010-09-29T19:34:32.060 回答