Recipe 5.1 Representing Numbers in Different Bases

5.1.1 Problem

You want to specify a value as a binary, octal, or hexadecimal number.

5.1.2 Solution

Hexadecimal literals start with 0X or 0x (where the first character is a zero, not an "oh"), and octal literals start with 0 (again, zero, not "oh"). Binary numbers can't be represented directly, but you can specify their octal or hexadecimal equivalent.

5.1.3 Discussion

You can represent numbers in ActionScript using whichever format is most convenient, such as decimal or hexadecimal notation. For example, if you set the value of the MovieClip._rotation property, it is most convenient to use a decimal number:

myMovieClip._rotation = 180;

On the other hand, hexadecimal numbers are useful for specifying RGB colors. For example, you can set the RGB value for a Color object in hexadecimal notation (in this example, 0xF612AB is a hex number representing a shade of pink):

myColor = new Color(myMovieClip);

Any numeric literal starting with 0X or 0x is presumed to be a hexadecimal number (a.k.a. hex or base-16). Allowable digits in a hexadecimal number are 0-9 and A-F (both uppercase and lowercase letters are allowed).

Any numeric literal starting with 0, but not 0x or 0X, is presumed to be an octal number (a.k.a. base-8). Allowable digits in an octal number are 0-7. For example, 0777 is an octal number. Most developers don't ever use octal numbers in ActionScript.

The only digits allowed in binary numbers (a.k.a. base-2) are 0 and 1. Although you can't specify a binary number directly, you can specify its hexadecimal equivalent. Four binary digits (bits) are equivalent to a single hex digit. For example, 1111 in binary is equal to F in hex (15 in decimal). The number 11111111 in binary is equal to FF in hex (255 in decimal). Binary numbers (or rather their hexadecimal equivalents) are most commonly used with ActionScript's bitwise operators (&, |, ^, >>, <<, and >>>).

5.1.4 See Also

Recipe 3.2, Recipe 3.3, Recipe 3.4, and Recipe 5.2

    Part I: Local Recipes
    Part II: Remote Recipes