5
Şu anda Java'dan Ruby'ye bir algoritma dönüştürüyorum ve Ruby'de taşan tamsayı yokluğundan biraz şaşırdım. Fixnum değişkeninde tamsayı taşması nasıl taklit edebilirim?
bu, etrafında sarar ve ben -1631106419 almalısınız Java'da maksimum tamsayı 2147483648.daha büyük, ben 2663860877 değeri olduğunu varsayalım.
Ben bu kod biraz buldum, ama çalışıyor gibi görünmüyor:def force_overflow(i)
if i < -2147483648
-(-(i) & 0xffffffff)
elsif i > 2147483647
i & 0xffffffff
else
i
end
end
değişken negatif beklediğiniz gibi zorlamaz And'ing. ikinin tamamlayıcısı negatifleri ile
yerine Ruby Java transliterasyon çalışırken bir bütün olarak algoritma yeniden hayata düşünebilirsiniz. Ruby'deki sayılar sayılardır, bir bit dizisi için uygun bir kap değildir. –