Decimal to Binary Converter

by verashn

JavaScript

var NumberConverter = (function() {
	// get highest power of 2 that fits within n
	var getHighestPower2 = function (n) {
	  var maxPower = 0,
    		temp = 0;
  	
    // determine highest N that fits
    while (temp < n) {
     	temp = Math.pow(2, maxPower);
      // stop the loop and get return the previous power
      if (temp > n) {
      	maxPower--;
        break;
      }
      
      maxPower++;
    }
   
    return maxPower;
  };
  
	var decimalToBinary = function (n) {
  	var maxPower = 0,
    		temp = n,
    		binary = '';
        
    maxPower = getHighestPower2(n);

    while (maxPower >= 0) {
      if (temp >= Math.pow(2, maxPower)) {
        temp = temp - Math.pow(2, maxPower);
        binary += '1';
      } else {
        binary += '0';
      }

      maxPower--;
    }
    
    return binary;
  };
  
  return {
  	decimalToBinary: decimalToBinary
  };
}());

var testCase = 3161;
console.log(NumberConverter.decimalToBinary(testCase));
console.log(testCase.toString(2));