I have been working on a cool project for making a color wheel and exposing color theory through it. I came across this problem of converting a string to a hexadecimal number. Doing Number("0x123456") just returns a decimal number, but I want 0x123456 as the output. How can I achieve this?
There are no "hexadecimal numbers", just numbers. Only a string representation of them will have a base - the standard one when converting a number to a string is 10
, but you can also write
const number = 0x123456; // same as number = 1193046;
console.log('0x'+number.toString(16)); // '0x123456'
This is the problem I'm trying to solve; I don't want "0x123456" (the string) but 0x123456 the number in hex notation. How can I do that? Glad you replied to my question.
0x123456 is a number already; '0x' + 0x123456.toString(16)
would give you the string form.
A number does not contain a notation.
see The original question
So I guess there's no sensible answer to this question.
Number("1193046", 16)
// 0x123456
a solution like thisπ would have been nice.
There's no hex number type - so 1193046
and 0x123456
are the same number, and can only be represented in a base that's not 10 by converting to a string.