gpt4 book ai didi

javascript - 为什么 Javascript 将数字视为二进制补码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:26 24 4
gpt4 key购买 nike

这里解释了为什么 ~5 等于 here 中的 -6 :

5 = 0000 0101

Flipped (~5) = 1111 1010

So, which number does 1111 1010 represent? Since the first digit is a 1 we know it's a negative value. To find which value, do

-(flip(1111 1010) + 1) = -(0000 0101 + 1) -(0000 0110) = -6

我想知道为什么 Javascript 将 ~5 的结果视为二进制补码形式的数字?

我的困惑源于这样一个事实,即如果我在控制台中写入 0b11111010,它的计算结果为 250,而不是 -6

最佳答案

因为这就是 Javascript 以二进制表示负数的方式。 Docs :

The operands of all bitwise operators are converted to signed 32-bit integers in two's complement format. Two's complement format means that a number's negative counterpart (e.g. 5 vs. -5) is all the number's bits inverted (bitwise NOT of the number, a.k.a. ones' complement of the number) plus one.

关于javascript - 为什么 Javascript 将数字视为二进制补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36986784/

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