bitw *函数是否应该使用round来强制转换为整数而不是as.integer?
str((6.6-6)*10)
#num 6
bitwShiftL(1,(6.6-6)*10)
#[1] 32
bitwShiftL(1,6)
#[1] 64
这是因为Bitwise Logical Operations强制转换为整数而as.integer强制转换为trunc。在我们的情况下(6.6-6)* 10在内部存储为5.99999 ...这没关系(见Why are these numbers not equal?)
我认为有人写bitwShiftL(1,5.9)实际上是愿意转移6而不是5。