2010-09-29 2 views
0

Я делаю преобразование кода от JavaScript до VB.NET. Я застрял в операции >>>.Как перевести >>> оператор в 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 

Что я делаю неправильно?

ответ

1

Вы должны использовать CUInt вместо CUShort.

CUShort предоставляет UShort, размер которого составляет всего 16 бит. В JavaScript все битовые операции выполняются в 32-битном режиме, поэтому a также должен быть преобразован в 32-разрядный неподписанный тип - это UInteger.

+0

Я пробовал CUInt, CUShort и CULng, но я получаю ошибки переполнения ошибок –