相关疑难解决方法(0)

什么是"2的补充"?

我在计算机系统课程中,并且一直在与Two's Complement一起挣扎.我想了解它,但我读过的所有内容并没有为我提供图片.我已经阅读了维基百科文章和其他各种文章,包括我的教科书.

因此,我想开始这个社区wiki帖子来定义Two's Complement是什么,如何使用它以及它如何在诸如强制转换(从有符号到无符号,反之亦然)等操作中影响数字,逐位操作和位移操作.

我所希望的是一个清晰简洁的定义,程序员很容易理解.

binary computer-science bit-manipulation twos-complement data-representation

410
推荐指数
7
解决办法
40万
查看次数

169
推荐指数
6
解决办法
19万
查看次数

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数

JavaScript中为什么~5 === -6?

注意:应从右到左阅读以下所有二进制表示.我不确定为什么我这样想他们,但我实际上并不知道人们也从左到右代表二元.混乱!

在MDN关于JavaScript的按位运算符(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_NOT)的文章中,它表示~运算符是按位运算NOT符.

在维基百科(https://en.wikipedia.org/wiki/Bitwise_operation#NOT)上,它表示"按位NOT或补码,是一个对每个位执行逻辑否定的一元运算,形成给定二进制的'补码' 0的位变为1,1的位变为0.

现在,取二进制数字5: 0101

如果我输入~5我的浏览器控制台,我会得到-6其二进制表示形式1110.我期望否定0101变成1010,实际上是10(如果最左边的数字被视为符号,则为-2).

我读到的JavaScript ~运算符的所有解释都说它将数字计算为 - (x + 1),但这并不能从逻辑上向我解释该运算符在"按位"级别上的作用.

基本上,0101成为1110.

目睹这种转变的中间步骤是什么?我看到前导位被翻转,从而改变了标志.但这就是我能收集的全部内容.

javascript binary bit-manipulation bitwise-operators

11
推荐指数
1
解决办法
467
查看次数