devxlogo

How can I convert numbers to hexadecimal strings?

How can I convert numbers to hexadecimal strings?

Question:
How can I convert numbers to hexadecimal strings?

Answer:
Although it was not mentioned in the original documentation forJavaScript, the toString method has been available forconverting integers into strings since the release of Netscape Navigator2.0. For example, if i is an integer, the statement

i = i . toString ();

changes it into a character string representing the same value.

In an earlier version of JavaScript, integer-to-string conversions using thetoString method were always performed in base 10. Inthe latest version of JavaScript, however, an optional integer parameter can be suppliedto specify a different radix. For example, the following programgenerates a character string s whose value is “101”, thebinary representation of the (decimal) number 5:

i = 5;s = i . toString (2);

Unfortunately, if you are using the Windows 95 version of Netscape 3.01or lower, there is a bug in the JavaScript interpreter that causestoString to malfunction when the radix is greater than 10and the integer being converted is supposed to result in a stringcontaining one or more “a” characters. To be more specific, wherevera‘s are supposed to appear in the output string, for somestrange reason colons (:) appear instead.

To illustrate, consider the decimal value 26. If you use toString(16) to get its hexadecimal equivalent, you will not get “1a”,but “1:”.

It is very likely that this bug is isolated to the Windows 95versions of Netscape. However, problems created by this bug aremore widespread: Regardless of your own Web-surfing platform, unlessyou are sure that none of the visitors to your Web pages are usingWindows 95 (highly unlikely, needless to say), you should not use the toString method with aradix parameter greater than 10.

To see if your browser suffers from this bug, examine the followingJavaScript output which was produced by your browser when you loadedthis document:

dec     hex     dec     hex     dec     hex     dec     hex---     ---     ---     ---     ---     ---     ---     ---If all the dec-to-hex conversions are correct, your browserprobably does not have the bug.

devx-admin

Share the Post: