当前位置:首页 > JavaScript

js实现二进制加法

2026-03-02 01:18:47JavaScript

二进制加法原理

二进制加法遵循与十进制类似的规则,但只有0和1两个数字。基本规则如下:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10(即结果为0,进位1)

实现方法一:逐位相加

将两个二进制字符串从最低位开始逐位相加,处理进位:

function addBinary(a, b) {
    let result = '';
    let carry = 0;
    let i = a.length - 1;
    let j = b.length - 1;

    while (i >= 0 || j >= 0 || carry > 0) {
        const digitA = i >= 0 ? parseInt(a[i--]) : 0;
        const digitB = j >= 0 ? parseInt(b[j--]) : 0;
        const sum = digitA + digitB + carry;
        result = (sum % 2) + result;
        carry = Math.floor(sum / 2);
    }

    return result;
}

实现方法二:转换为十进制计算

先将二进制转换为十进制,相加后再转回二进制:

function addBinary(a, b) {
    const numA = parseInt(a, 2);
    const numB = parseInt(b, 2);
    const sum = numA + numB;
    return sum.toString(2);
}

注意:此方法在数字较大时可能丢失精度,因为JavaScript的数值有范围限制。

实现方法三:使用BigInt处理大数

对于超长二进制字符串,可以使用BigInt避免精度问题:

function addBinary(a, b) {
    const bigA = BigInt('0b' + a);
    const bigB = BigInt('0b' + b);
    return (bigA + bigB).toString(2);
}

边界情况处理

需要考虑空字符串、不等长字符串等情况:

function addBinary(a, b) {
    if (!a) return b || '0';
    if (!b) return a || '0';

    // 其他实现代码...
}

性能优化

对于超长字符串,方法一(逐位相加)比方法二(十进制转换)更可靠,但方法三(BigInt)是现代JavaScript的最佳选择。

js实现二进制加法

标签: 加法js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点…