编程语言
首页 > 编程语言> > javascript-使用按位与1

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