GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • JS Tutorial
  • Web Tutorial
  • A to Z Guide
  • Projects
  • OOP
  • DOM
  • Set
  • Map
  • Math
  • Number
  • Boolean
  • Exercise
  • Introduction3 min read
  • Variables5 min read

This view

  • Original page
  • New address

GeezerVison is showing www.geeksforgeeks.org — JavaScript Program to Add n Binary Strings - GeeksforGeeks

geeksforgeeks
search icon
  • Courses
  • Tutorials
  • Interview Prep
  • JS Tutorial
  • Web Tutorial
  • A to Z Guide
  • Projects
  • OOP
  • DOM
  • Set
  • Map
  • Math
  • Number
  • Boolean
  • Exercise

JavaScript Program to Add n Binary Strings

Last Updated : 31 May, 2024

In this article, we are going to learn about Adding n binary strings by using JavaScript. Adding n binary strings in JavaScript refers to the process of performing binary addition on a collection of n binary strings, treating them as binary numbers, and producing the sum in binary representation as the result.

There are several methods that can be used to Add n binary strings by using javascript, which is listed below:

Table of Content

  • Using for...in loop
  • Using reduce() method
  • Using parseInt() and toString() method
  • Bitwise Addition

We will explore all the above methods along with their basic implementation with the help of examples.

Using for...in loop

In this approach, The custom function sums binary strings in inputStr using a for...in loop, converting them to decimal, and returning the result as a binary string

Syntax:

for (let i in obj1) {
// Prints all the keys in
// obj1 on the console
console.log(i);
};

Example: In this example,The addBinaryStrings function takes an array of binary strings, converts them to decimal, adds them together, and returns the sum as a binary string.

JavaScript
function addBinaryStrings(str1) {
    let result = 0;

    for (let i in str1) {
        result += parseInt(str1[i], 2);
    }

    return result.toString(2);
}

let inputStr = ['0111', '1001'];
let sum = addBinaryStrings(inputStr);
console.log(sum); 

Output
10000

Using reduce() method

In this approach, using Array.reduce(), define a function that takes an array of binary strings, converts them to decimal, accumulates their sum, and returns the result as a binary string. The accumulator starts at "0".

Syntax:

array.reduce( function(total, currentValue, currentIndex, arr), 
initialValue );

Example: In this example,the addingBinaryStr function takes an array of binary strings, converts them to decimal, adds them with reduce, and returns the sum as a binary string.

JavaScript
function addingBinaryStr(str1) {
    return str1.reduce((val1, val2) => {
        let binary1 = parseInt(val1, 2);
        let binary2 = parseInt(val2, 2);
        let sum = binary1 + binary2;
        return sum.toString(2);
    }, "0");
}

let inputStr = ['0111', '1001'];
let result = addingBinaryStr(inputStr);
console.log(result); 

Output
10000

Using parseInt() and toString() method

In this approach,we Add binary strings by converting them to integers using parseInt with base 2, then summing them, and finally converting the result back to binary using toString(2).

Syntax:

parseInt(Value, radix)   //parseInt()
num.toString(base) //toString()

Example: In this example, we are using above-explained approach.

JavaScript
let binary1 = "0111";
let binary2 = "1001";

// Parse binary string 'binary2' to an integer
let num1 = parseInt(binary1, 2);
// Parse binary string 'binary2' to an integer
let num2 = parseInt(binary2, 2);
// Add the two integers
let sum = num1 + num2;
// Convert the sum back to a binary string
let result = sum.toString(2);

console.log(result); 

Output
10000

Bitwise Addition

In this approach, we perform binary addition using bitwise operations. We traverse each bit of the binary strings from the least significant bit (rightmost) to the most significant bit (leftmost). We maintain carry during addition and update the result accordingly.

Example:

JavaScript
function addBinaryStrings(str1) {
    let result = '';
    let carry = 0;
    
    // Iterate through each bit from right to left
    for (let i = str1[0].length - 1; i >= 0; i--) {
        let sum = carry;
        
        // Add the corresponding bits of all binary strings
        for (let j = 0; j < str1.length; j++) {
            sum += parseInt(str1[j][i]) || 0;
        }
        
        // Calculate current bit of result
        result = (sum % 2) + result;
        
        // Calculate carry for the next bit addition
        carry = Math.floor(sum / 2);
    }
    
    // Add carry if present
    if (carry) {
        result = carry + result;
    }
    
    return result;
}

let inputStr = ['0111', '1001']; 
let sum = addBinaryStrings(inputStr); 
console.log(sum);

Output
10000


Comment

Explore

    JavaScript Basics
    • Introduction3 min read
    • Variables5 min read
    • Operators4 min read
    • Control Statements4 min read
    Array & String
    • Arrays6 min read
    • Array Methods4 min read
    • String5 min read
    • String Methods8 min read
    Function & Object
    • Functions4 min read
    • Function Expression3 min read
    • Function Overloading4 min read
    • Objects4 min read
    • Constructors4 min read
    OOP
    • OOP5 min read
    • Classes & Objects4 min read
    • Access Modifiers5 min read
    • Constructor4 min read
    Asynchronous JavaScript
    • Asynchronous2 min read
    • Callbacks4 min read
    • Promises4 min read
    • Event Loop3 min read
    • Async Await Fuction3 min read
    Exception Handling
    • Error and Exceptional Handling5 min read
    • Errors Throw & Try to Catch2 min read
    • Custom Errors2 min read
    • TypeError Invalid Array.prototype.sort argument1 min read
    DOM
    • DOM8 min read
    • DOM Elements3 min read
    • Custom Events4 min read
    • Addeventlistener5 min read
    Advanced Topics
    • Closure3 min read
    • Hoisting5 min read
    • Scope4 min read
    • Higher Order Functions7 min read
    • Debugging3 min read
    Courses
    • Placement 360 Course2 min read
    • MERN Full Stack Course2 min read
    • DSA and System Design Course2 min read
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.