小编Jef*_*ams的帖子

如何在Fixnum变量上模拟整数溢出?

我目前正在将一个算法从Java转换为Ruby,而且由于Ruby中缺少整数溢出,我遇到了一些麻烦.

假设我的值为2663860877,这大于最大整数2147483648.

在Java中,它包裹起来,我应该得到-1631106419.

我找到了这段代码,但它似乎没有工作:

def force_overflow(i)
  if i < -2147483648
    -(-(i) & 0xffffffff)
  elsif i > 2147483647
    i & 0xffffffff
  else
    i
  end
end
Run Code Online (Sandbox Code Playgroud)

并且变量并不像你期望的那样强迫它消极.

ruby math integer overflow

6
推荐指数
1
解决办法
1185
查看次数

标签 统计

integer ×1

math ×1

overflow ×1

ruby ×1