gpt4 book ai didi

JavaScript 按位 NOT ~ 不会产生相同的结果

转载 作者:行者123 更新时间:2023-12-03 02:58:26 25 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 反转以 10 为基数的值的二进制数字,根据此 W3Schools page ,JavaScript 的按位 NOT 运算符(即 ~) 应该可以做到这一点。

在一个示例中,它们显示 ~5 的结果为 10,但是当我尝试执行简单的程序时...

console.log(~5);

... RTE 记录 -6,而不是 10。我做错了什么?

最佳答案

如果您在网站 ( https://www.w3schools.com ) 上向下滚动一点,您会找到以下信息(如 axiac 已写的那样):

The examples above uses 4 bits unsigned binary numbers. Because of this ~ 5 returns 10.

Since JavaScript uses 32 bits signed integers, it will not return 10. It will return -6.

00000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = -6)

A signed integer uses the leftmost bit as the minus sign.

所以你没有做错任何事。


var x = 5;
document.getElementById("output").innerHTML=~5;
<div id="output"></div>

关于JavaScript 按位 NOT ~ 不会产生相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47519212/

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