按位逻辑运算在R中强制转换为不直观的整数

时间:2016-09-01 08:37:56

标签: r bitwise-operators type-conversion

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。

0 个答案:

没有答案