[英]How to truncate large integers during bitwise operations to mimic JavaScript in Ruby?
[英]Bitwise NOT in ruby
我在JS中有一個使用按位NOT運算符的公式。
~~(n/m + 0.5) * m;
如何在ruby中編寫相同的表達式? ruby中沒有按位NOT運算符。
這不會有幫助嗎? http://www.techotopia.com/index.php/Ruby_Operators#Ruby_Bitwise_Operators
〜按位NOT(補語)
我相信Ruby中的相同表達式是(n/m + 0.5).to_i * m
,或者, Integer(n/m + 0.5) * m
。
看起來像加倍的按位補碼實際上用於截斷計算的小數部分,以便計算最接近的n ,使得n是m的倍數。 (在另一種語言中,我會說“轉換為整數” ,但Javascript具有統一的算術類型。)
更新: MladenJablanović建議演員,是的,如果m和n都是Fixnum,那就需要了。 在Ruby中, 1/3是0但在JS中它是0.333 ......這是一個精致的建議:
(n.to_f / m).round * m
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.