相关疑难解决方法(0)

什么是按位运算符?

我是一个只是为了好玩而编写代码的人,并没有在学术或专业环境中深入研究它,所以像这些按位运算符这样的东西真的让我感到厌烦.

我正在阅读一篇关于JavaScript的文章,它显然支持按位操作.我一直看到这个地方提到的这个操作,我试着去弄清楚究竟是什么,但我似乎根本没有得到它.那他们是什么?清楚的例子会很棒!:d

还有几个问题 - 按位运算的一些实际应用是什么?你何时可以使用它们?

javascript boolean-logic boolean bitwise-operators

127
推荐指数
4
解决办法
2万
查看次数

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
查看次数