js中的与运算是怎么用的,我console.log(110& 111)结果就是110,是对的,但是console.log(1000&1100)结果就是72,为什么不是1000,就是换算成十进制,这个72也是不对的,不知道是怎么回事?
console.log(110& 111);输出110
console.log(1000&1100);输出72
哪位大神给解答下?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
跟js没关系 这是位运算 基于2进制 大学学C必然讲这个
简单说
&表示按位与,计算方式为先转换为2进制,然后每一个对应位置的同时为1得1,其他情况为0,得到2进制,再转为10进制。电脑里储存数字用的是2进制,按位与是cpu最最最简单的操作之一,性能快。
js中默认是10进制,如果你想使用十六进制来表示,则为
0x开头看你的问题是希望做二进制的位运算,但你的输入却是十进制的。
转换如下
使用
parseInt(number,2)将2进制的字符串转换为数字使用
number.toString(2)方法将数字转为2进制字符串显示出来正确写法
console.log(110& 111);console.log(1000&1100);看了上面的回答还是有小小收获的,至少让我复习了一下。不过再看楼主的问题,是问
可以看出来,楼主是把 & 和 && 搞混了,仅此而已。
& 是二进制的与运算,而 && 是语法中的 逻辑与 ,用混了。