5.2. Converting Between Different Number Systems

Problem

You want to convert a number between different bases (decimal, binary, hexadecimal, etc.).

Solution

Use the parseInt( ) function with the radix parameter (the radix is the number’s base) to convert a string to a decimal representation. Use the Number.toString( ) method with the radix parameter to convert a decimal number to a string representation of the value in another base.

Discussion

No matter how you set a number value in ActionScript, the result is always retrieved as a decimal (base-10) number.

// Create a Color object.
myColor = new Color(this);

// Set the RGB value as a hexadecimal.
myColor.setRGB(0xF612AB);

// This displays the value as decimal: 16126635
trace(myColor.getRGB(  ));

However, if you want to output a value in a different base, you can use Number.toString( radix ) to convert any number value to a string representing that number in the specified base.

These two examples convert numeric literals to Number objects and output the string representations in base-2 (binary) and base-16 (hexadecimal) format:

// The radix is 2, so output as binary.
trace(new Number(51).toString(2));  // Displays: "110011"
// The radix is 16, so output as hex.
trace(new Number(25).toString(16)); // Displays: "19"

This example assigns a primitive number to a variable and calls the toString( ) method to output the value in hexadecimal:

myNum = 164;
trace(myNum.toString(16)); // Displays: "A4"

Note that the results from these examples are ...

Get Actionscript Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.