Skip to content

Instantly share code, notes, and snippets.

@ghalimi
Last active December 11, 2015 00:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ghalimi/4515379 to your computer and use it in GitHub Desktop.
Save ghalimi/4515379 to your computer and use it in GitHub Desktop.
DEC2BIN Function
// Copyright (c) 2012 Sutoiku, Inc. (MIT License)
function DEC2BIN(number, places) {
// Return error if number is not a number
if (isNaN(number)) return '#VALUE!';
// Return error if number is not decimal, is lower than -512, or is greater than 511
if (!/^-?[0-9]{1,3}$/.test(number) || number < -512 || number > 511) return '#NUM!';
// Ignore places and return a 10-character binary number if number is negative
if (number < 0) {
return '1' + _s.repeat('0', 9 - (512 + number).toString(2).length) + (512 + number).toString(2);
}
// Convert decimal number to binary
var result = parseInt(number, 10).toString(2);
// Return binary number using the minimum number of characters necessary if places is undefined
if (typeof places === 'undefined') {
return result;
} else {
// Return error if places is nonnumeric
if (isNaN(places)) return '#VALUE!';
// Return error if places is negative
if (places < 0) return '#NUM!';
// Truncate places in case it is not an integer
places = Math.floor(places);
// Pad return value with leading 0s (zeros) if necessary (using Underscore.string)
return (places >= result.length) ? _s.repeat('0', places - result.length) + result : '#NUM!';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment