js计算,与或非,按位与运算符


1,“与”运算(&)

a&b

规则:0&0=0;0&1=0;1&0=0;1&1=1
(只要有一个数是0,值为0)

例子:
const a = 5;        // 00000000000000000000000000000101
const b = 3;        // 00000000000000000000000000000011
const c = 7;         // 00000000000000000000000000000111
console.log(a & b); // 00000000000000000000000000000001
console.log(a & c); // 00000000000000000000000000000101

a与b的值为1
a与c的值为5
2,“非”运算(~)

a~b

const a = 5;     // 0000000000000101
console.log(~a); // 1111111111111010
// 值为: -6
const b = -3;    // 1111111111111101
console.log(~b); // 0000000000000010
// 值为: 2

先取反,如果是“正数”,值为正数;
先取反,如果是“负数”,保留第一位符号位,其余数字取反再加一,值为负数数

3,“或”运算(|)

a|b

规则:0|0=0;0|1=1;1|0=1;1|1=1;
(只要有一个数是1,值为1)

const a = 5;        // 00000000000000000000000000000101
const b = 3;        // 00000000000000000000000000000011
console.log(a | b); // 00000000000000000000000000000111
// 值为: 7
4,“异或”运算(^)

a^b

规则:0 ^ 0=0;0 ^ 1=1;1 ^ 0=1;1^1=0;

const a = 5;        // 00000000000000000000000000000101
const b = 3;        // 00000000000000000000000000000011
console.log(a ^ b); // 00000000000000000000000000000110
// 值为: 6
5,按位“与赋值”(&=)
其实
let a = 5;      // 00000000000000000000000000000101
a &= 3;         // 00000000000000000000000000000011
相当于:a = a & 3
console.log(a); // 00000000000000000000000000000001
// 值为: 1 

其实就是运算符的缩写形式,同理的还有 “|=” , “^=”


附录:

我们在数字电路中的二进制表示形式是机器数,把一个数的最高位作为符号位,0表示“+”,1表示“-”。二进制正负数的表示法有原码、反码、补码。

如果符号为0,即是正数,三种表示法都是一样的,随后是二进制数的绝对值。
对于负数的表示法是不一样,如下:

1、 原码
负数符号位1,接着是二进制数的绝对值。
如(-9)的原码=(1001001)
2、 反码
负数符号位1,接着对剩下的位二进制取反。
如(-9)反码=(1110110)
注意符号位不参与取反
3、 补码
负数符号位1,接着是二进制的补码。补码通过反码加1得到。
如(-9)补码=(1110111)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值