javascript-使用按位与1
作者:互联网
如果x是浮点数,则执行
y = x & 1
除了检查x是否为奇数之外,还有其他目的吗?
我刚刚读了Using bitwise OR 0 to floor a number,想知道,还有其他有趣的按位操作吗?
解决方法:
如果x在逻辑上是浮点数(在测试之前不打算是整数值),则& 1的确切目的是:确定x的截断值是否为奇数(这是截断和按位测试的组合).这并不是说x是否为奇数(-2.9既不是奇数也不是偶数,也不是-3.9,它们给出相反的结果),而且不只是被截断(因为它会丢弃所有数据,只剩下一位数据).该测试本质上是将两种效果结合在一起,因此,当x是任意浮点值时,该测试对其他任何功能均无用.
如其他答案所述,按位运算还有其他合法用途,例如加密或将整数重新用作布尔标志的向量,但这仅与逻辑整数值相关;执行浮点数学运算,然后在截断后不使用舍入而依赖于特定整数值而不进行舍入的方法,这是一个糟糕的主意,当结果最终为X.99999999999999999999999999994(如您期望的那样)时(在“小学”数学下, X 1.
标签:bit-manipulation,javascript 来源: https://codeday.me/bug/20191025/1928766.html