I would like to convert numbers between different bases, such as hexadecimal and decimal.
Example: How do you convert hexadecimal 8F
to decimal?
How to convert from any base to any base. Convert from decimal to destination base: divide the decimal with the base until the quotient is 0 and calculate the remainder each time. The destination base digits are the calculated remainders.
How to convert a string to a number in JavaScript using the parseInt() function. Another way to convert a string into a number is to use the parseInt() function. This function takes in a string and an optional radix. A radix is a number between 2 and 36 which represents the base in a numeral system.
The API
To convert to a number from a hex string:
parseInt(string, radix)
string: Required. The string to be parsed
radix: Optional. A number (from 2 to 36) that represents the numeral system to be used
To convert from a number to a hex string:
NumberObject.toString(radix)
Example radix values:
Example Usage
Integer value to hex:
var i = 10; console.log( i.toString(16) );
Hex string to integer value:
var h = "a"; console.log( parseInt(h, 16) );
Integer value to decimal:
var d = 16; console.log( d.toString(10) );
I came to this post needing to convert from base 10 to 62 and vice-versa. Whilst the solutions here are great, parseInt
and toString
only support base 2 to 36. So if anyone finds themselves in a similar position to me needing base 2 to 62, I've pasted my solution below.
https://gist.github.com/ryansmith94/91d7fd30710264affeb9
function convertBase(value, from_base, to_base) { var range = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/'.split(''); var from_range = range.slice(0, from_base); var to_range = range.slice(0, to_base); var dec_value = value.split('').reverse().reduce(function (carry, digit, index) { if (from_range.indexOf(digit) === -1) throw new Error('Invalid digit `'+digit+'` for base '+from_base+'.'); return carry += from_range.indexOf(digit) * (Math.pow(from_base, index)); }, 0); var new_value = ''; while (dec_value > 0) { new_value = to_range[dec_value % to_base] + new_value; dec_value = (dec_value - (dec_value % to_base)) / to_base; } return new_value || '0'; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With