我正在将Visual Basic应用程序转换为Ruby,因为我们正在将它转移到Web上.然而,在转换某些算法时,我遇到了有关位移的问题.
我该如何理解它,问题就出在规模面具VB的整数类型强制执行(如解释在这里).实际上,Ruby并没有区分这些类型.
所以问题是:
Dim i As Integer = 182
WriteLine(i << 24) '-1241513984
Run Code Online (Sandbox Code Playgroud)
puts 182 << 24 # 3053453312
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索和阅读在过去几个小时的位移,但没有找到方法,甚至方向,以解决这个问题.