Home Articles FAQs XREF Games Software Instant Books About Feedback Search Site-Map
irt.org logo

Q146 How can I convert a decimal number into a hexidecimal number?

irt.org | Knowledge Base | JavaScript | Number | Q146 [ previous next ]

Q146 How can I convert a decimal number into a hexidecimal number?

The following script will convert any decimal number to a any base upto 36:

<SCRIPT LANGUAGE="JavaScript"><!--
function makeArray() {
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i] = makeArray.arguments[i];
}

var convert = new makeArray('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

function returnBase(number,base) {
    if (number < base) var output = convert[number];
    else {
        var MSD = '' + Math.floor(number / base);
        var LSD = number - MSD*base;
        if (MSD >= base) var output = returnBase(MSD,base) + convert[LSD];
        else var output = convert[MSD] + convert[LSD];
    }
    return output;
}
                       
document.write('Answer = ' + returnBase(510,16));
//--></SCRIPT>

Martin Honnen kindly pointed out the following solution:

<SCRIPT LANGUAGE="JavaScript"><!--
var n = 16;
alert(n.toString(16));
//--></SCRIPT>

However, as Jukka Korpela points out:

it seems to me that at least on Internet Explorer 3.0 and Opera 3.60, the parameter (16) is ignored - and this means getting the wrong result without any warning. Since the toString solution is probably commonly suggested, perhaps it's useful to mention but with a warning that it does not work on all browsers, so it's better to use another solution.

Provide feedback ...
AddThis Social Bookmark Button

Provide feedback ... AddThis Social Bookmark Button


Last Updated: 6th July 2009. Maintained by: Martin Webb and Michel Plungjan
irt.org liability, trademark, document use, privacy statement and software licensing rules apply.
Copyright © 1996-2009 irt.org, All Rights Reserved.