gpt4 book ai didi

javascript - 按位运算正数转负数

转载 作者:行者123 更新时间:2023-11-28 15:18:57 24 4
gpt4 key购买 nike

抛开性能和优化争论不谈。

我正在寻找一种在 Javascript 中将数字设为 5 并使用按位运算将其更改为 -5 的方法。

翻转位的问题是 0 变成 1,因此 ~5 变成 -6。

有没有办法纯粹通过按位运算来做到这一点?我觉得重新添加 1 会抵消我可能会或可能不会获得的微小改进。

最佳答案

负数作为整数是 two's complement 。要使用二进制补码翻转符号,您可以这样做:

"To get the two's complement of a binary number, the bits are inverted, or "flipped", by using the bitwise NOT operation; the value of 1 is then added to the resulting value, ignoring the overflow which occurs when taking the two's complement of 0."

在 JavaScript 中,这将是:

n = ~n + 1;

如果您正在寻求性能,这可能不是最快的方法。这很可能是使用专门为此设计的运算符:

n = -n;

关于javascript - 按位运算正数转负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com