当前位置:首页 > JavaScript

js实现二进制加法

2026-04-05 02:08:50JavaScript

二进制加法的基本概念

二进制加法遵循与十进制加法类似的规则,但进位发生在2而不是10。每一位相加的结果可以是0、1或10(即0带进位1)。

js实现二进制加法

实现方法一:逐位相加

从最低位开始逐位相加,处理进位。使用循环遍历每一位,直到所有位处理完毕。

js实现二进制加法

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);
        i--;
        j--;
    }

    return result;
}

实现方法二:转换为十进制相加后转回

将二进制字符串转换为十进制数,相加后再转换回二进制。注意大数精度问题。

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

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

对于超过JavaScript安全整数范围的二进制数,可以使用BigInt避免精度问题。

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

注意事项

  • 方法二在输入字符串较长时可能丢失精度,因为JavaScript的Number类型有安全整数限制。
  • 方法三适用于任意长度的二进制字符串,推荐在实际项目中使用。
  • 输入验证是必要的,确保输入字符串只包含'0'和'1'。

示例测试

console.log(addBinary('11', '1')); // 输出 '100'
console.log(addBinary('1010', '1011')); // 输出 '10101'

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

相关文章

js jquery

js jquery

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

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…