当前位置:首页 > JavaScript

js实现二进制加法

2026-01-31 10:04:04JavaScript

二进制加法实现原理

二进制加法遵循与十进制加法类似的规则,但进位条件是2而非10。每一位相加时可能出现四种情况:

  • 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;
}

数值类型实现方法

对于较小的二进制数(不超过JavaScript安全整数范围),可以转换为十进制计算:

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

位运算优化方案

使用位运算可以避免显式的进位处理:

function addBinary(a, b) {
  let x = parseInt(a, 2);
  let y = parseInt(b, 2);
  while (y != 0) {
    let carry = x & y;
    x = x ^ y;
    y = carry << 1;
  }
  return x.toString(2);
}

处理前导零

某些情况下需要保持固定位数输出:

js实现二进制加法

function addBinaryWithPadding(a, b, length) {
  const sum = addBinary(a, b);
  return sum.padStart(length, '0');
}

注意事项

  • 输入验证应确保字符串只包含'0'和'1'
  • 大数运算建议使用字符串方法
  • 结果可能需要去除前导零(根据具体需求)
  • 位运算方法有32位整数限制

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

相关文章

js实现倒计时

js实现倒计时

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

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现tab选项卡切换

js实现tab选项卡切换

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

jquery js

jquery js

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