I would like to convert numbers between different bases, such as hexadecimal and decimal.
Example: How do you convert hexadecimal 8F to decimal?
I would like to convert numbers between different bases, such as hexadecimal and decimal.
Example: How do you convert hexadecimal 8F to decimal?
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:
>>> i = 10; 10 >>> i.toString(16); "a" Hex string to integer value:
>>> h = "a"; "a" >>> parseInt(h, 16); 10 Integer value to decimal:
>>> d = 16; 16 >>> d.toString(10); "16" 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'; } Specify the radix you want to use as a parameter.
NOTE: This only works to convert from bases 2-36 to decimal.
parseInt(string, radix) parseInt("80", 10) // results in 80 parseInt("80", 16) // results in 128 // etc Well, I made a function that could translate from base 10 to any base. (This depends on how many strings you have in the array A, if it's more than that + 10 it'll run out of symbols), and I almost cried when I found out you could to it in less than 10 characters with that...
Add a bookmark and as URL insert this... I've done it the long but personal way. At least, mine can use a base which is higher than 36. You can add more symbols yourself, but if you want, I can make it for you...
var X = prompt("Choose your number"); var Y = prompt("Choose your base"); var Z = []; var M = -1; var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O"