Битовый сдвиг в Ruby

В настоящее время я конвертирую приложение Visual Basic в Ruby, потому что мы переносим его в Интернет. Однако при преобразовании некоторых алгоритмов я столкнулся с проблемой смещения битов.

Насколько я понимаю, проблема заключается в маске размера, которую VB применяет к целочисленным типам (как объясняется здесь ). На практике Ruby не различает эти типы.

Итак, проблема:

Visual Basic

Dim i As Integer = 182
WriteLine(i << 24) '-1241513984

Ruby

puts 182 << 24 # 3053453312

Я гуглил и читал о сдвиге битов в последние часы, но не нашел способа или даже направления для решения этой проблемы.

6
задан Cœur 5 August 2017 в 07:01
поделиться