首页  > 教育解读  > js二进制的加法怎样算

js二进制的加法怎样算

2025-05-27 08:40:09
起航
起航已认证

起航为您分享以下优质知识

Javascript中二进制加法可通过以下两种方式实现:

一、使用位运算符(推荐)

位运算符直接对二进制位进行操作,效率较高。具体规则如下:

0+0=0 , 0+1=1, 1+0=1, 1+1=10(逢二进一)

NOT运算符(~):

将数字转换为32位二进制反码(最高位为符号位)

AND运算符(&):

按位与运算,用于计算进位

OR运算符(|):

按位或运算,用于计算当前位结果

示例代码:

```javascript

function binaryAddition(a, b) {

let carry = 0;

let result = '';

while (b !== 0 || carry !== 0) {

let sum = carry;

if (a !== 0) sum += a & 1;

if (b !== 0) sum += b & 1;

carry = sum >

>

1;

result = (sum & 1) + result;

a >

>

= 1;

b >

>

= 1;

}

return result;

}

console.log(binaryAddition(5, 3)); // 输出 "101"

```

二、使用字符串处理(适用于二进制字符串)

当输入为二进制字符串时,可通过逐位相加并处理进位实现:

1. 从右向左遍历两个字符串,逐位相加

2. 若和为2则进位为1,当前位为0;若和为3则进位为1,当前位为1

3. 最后处理最高位可能的进位

示例代码:

```javascript

function binaryStringAddition(num1, num2) {

let res = Array(num1.length + num2.length).fill(0);

let carry = 0;

for (let i = num1.length - 1; i >

= 0; i--) {

let sum = carry;

if (num1[i] === '1') sum += 1;

if (num2[i] === '1') sum += 1;

carry = Math.floor(sum / 2);

res[i + 1] = sum % 2;

}

if (carry === 1) res.unshift('1');

return res.join('');

}

console.log(binaryStringAddition('1010', '1011')); // 输出 "10100"

```

三、注意事项

位运算适用于整数,若处理二进制字符串需转换为数字后运算

Javascript中二进制运算默认使用32位有符号整数,需注意溢出问题