# Convert hexadecimal value to RGB

`This ActionScript function takes in one hex value (such as #FF07BA) and converts it into an RGB (Red Green Blue) value, thus useful for converting colors between the two popular formats.`
``````function ConvertToRGB(hexNum:Number)
{
var rgbObj:Object = new Object();
rgbObj.r = hexNum >> 16;
var tmpVal = hexNum - (rgbObj.r << 16);
rgbObj.g = tmpVal >> 8;
rgbObj.b = tmpVal & 0xFF;
return rgbObj;
}
``````

This ActionScript function, `ConvertToRGB`, is designed to convert a hexadecimal color value to its corresponding RGB (Red, Green, Blue) components. Let’s break down the function step by step:

Function Declaration:

``````function ConvertToRGB(hexNum:Number)
``````

This line declares a function named `ConvertToRGB` that takes one parameter `hexNum`, which is expected to be a number. This number represents a hexadecimal color value.

### Object Initialization:

``````var rgbObj:Object = new Object();
``````

Here, an object `rgbObj` is created. This object will be used to store the red, green, and blue components of the color.

Extracting the Red Component:

``````rgbObj.r = hexNum >> 16;
``````

The red component is extracted by bit-shifting the hexadecimal value 16 bits to the right (`>> 16`). In a typical hexadecimal color code (like `0xFFCC33`), the first two characters after `0x` represent the red component. Bit-shifting right by 16 bits effectively isolates these two characters.

### Preparing to Extract Green and Blue:

``````var tmpVal = hexNum ^ rgbObj.r << 16;
``````

This line is supposed to reset the bits corresponding to the red component to zero, but it seems to have an error. The correct operation should be `hexNum - (rgbObj.r << 16)`. This subtraction removes the red component from `hexNum`, leaving only the green and blue components.

Extracting the Green Component:

``````rgbObj.g = tmpVal >> 8;
``````

This line extracts the green component by bit-shifting `tmpVal` 8 bits to the right. After removing the red component, the next two characters in the hexadecimal code represent the green component.

Extracting the Blue Component:

``````rgbObj.b = tmpVal ^ rgbObj.g << 8;
``````

This line is intended to extract the blue component, but it also has an error. The correct operation should be `tmpVal & 0xFF`. This bitwise AND operation with `0xFF` (which is `255` in decimal and represents `11111111` in binary) isolates the last two characters in the hexadecimal code, which are the blue component.

Return the RGB Object:

``````return rgbObj;
``````

Finally, the function returns the `rgbObj` object containing the red, green, and blue components.

##### Nathan
Nathan Pakovskie is an esteemed senior developer and educator in the tech community, best known for his contributions to Geekpedia.com. With a passion for coding and a knack for simplifying complex tech concepts, Nathan has authored several popular tutorials on C# programming, ranging from basic operations to advanced coding techniques. His articles, often characterized by clarity and precision, serve as invaluable resources for both novice and experienced programmers. Beyond his technical expertise, Nathan is an advocate for continuous learning and enjoys exploring emerging technologies in AI and software development. When he’s not coding or writing, Nathan engages in mentoring upcoming developers, emphasizing the importance of both technical skills and creative problem-solving in the ever-evolving world of technology. Specialties: C# Programming, Technical Writing, Software Development, AI Technologies, Educational Outreach