Are bits alternating in integer using JavaScript?


Problem

We are required to write a JavaScript function that takes in an integer, num, as the first and the only argument.

Our function should check whether the binary representation of num has alternating bits − namely, if two adjacent bits will always have different values.

For example, if the input to the function is

Input

const num = 5;

Output

const output = true;

Output Explanation

Because the binary form of 5 is 101 which have alternating bits.

Example

Following is the code −

 Live Demo

const num = 5;
const isAlternating = (num = 1) => {
   const binary = num.toString(2);
   let curr = binary[0];
   for(let i = 1; i < binary.length; i++){
      const el = binary[i];
      if(curr !== el){
         curr = el;
         continue;
      };
      return false;
   };
   return true;
};
console.log(isAlternating(num));

Output

true

Updated on: 24-Apr-2021

128 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements