js 中如何实现两个二进制数相与?

JavaScript021

js 中如何实现两个二进制数相与?,第1张

解释下为什么会得到880

a = "01010", b = "10101"

按位与运算符会把左右两侧操作符转成有符号32位整数

即把a/b默认转为两个32位十进制整数1010和10101, 而他们的与结果是880

以下是字符串形式的二进制与方法

result = (parseInt(a,2)&parseInt(b,2))

在JS“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。

1、运算表达的不同

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

JavaScript中的位运算符:“|”运算方法:两个位只要有一个为1,那么结果都为1。否则就为0

2、使用方式的不同

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值

3、运算逻辑的不同

按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作数均为true时,其结果才为true;只要有一个为零,a&&b就为零。

扩展资料

js中的||的使用:

只有前后都是false的时候才返回false,否则返回true;

alert(2||1)//2

前面2是true,后面1也是true,结果是2;

alert('a'||1)//'a'

前面'a'是true,后面1也是true测试结果是'a';

alert(''||1)//1

前面”是false,后面1是true,而返回结果是1;

alert('a'||0)//'a'

前面'a'是true,而后面0是false,返回结果是'a';

alert(''||0)//0

前面”是false,后面0同样是false,返回结果是0;

alert(0||'')//''

前面0是false,后面”是false,返回结果是”。