# Hex to RGB color

In computer programming and web development, colors are often represented using hexadecimal (hex) codes. However, sometimes it's necessary to convert these hex color codes to their corresponding RGB (Red, Green, Blue) values for various purposes. In this article, we will discuss the problem of converting hex color codes to RGB values and provide a solution in the form of an algorithm and pseudocode.

## Problem Statement

The problem is to write a program that takes a hex color code as input and converts it to its RGB representation. The hex color code is a six-digit alphanumeric value that represents the intensity of the three primary colors (red, green, and blue) used to create a specific color. Each digit in the hex code represents four bits, allowing for 16 possible values (0-9, A-F).

For example, the hex code "FA8072" represents a reddish color, "03FFA2" represents a bluish-green color, and "FFFFFF" represents white.

### Example:

Input: "FA8072"

Output: R: 250, G: 128, B: 114

## Algorithm and Pseudocode

To convert a hex color code to RGB, we can follow these steps:

1. Define a function `color_code` that takes a character as input and returns the decimal value of the corresponding hex digit.
2. Define a function `hex_to_rgb` that takes a hex color code as input.
3. Inside the `hex_to_rgb` function, calculate the RGB values using the `color_code` function and the given hex color code.
4. Display the calculated RGB values.
5. Define the `main` function and test the `hex_to_rgb` function with sample hex color codes.

Here is the pseudocode for the algorithm:

``````
function color_code(color):
if color is a number:
return (decimal value of the digit)
else if color is a lowercase letter:
return (decimal value of the letter)
else if color is an uppercase letter:
return (decimal value of the letter)
else:
return -1

function hex_to_rgb(hex):
if length of hex is not equal to 6:
print "Invalid Hex color code"
return
else:
r = (color_code(hex[0]) * 16) + color_code(hex[1])
g = (color_code(hex[2]) * 16) + color_code(hex[3])
b = (color_code(hex[4]) * 16) + color_code(hex[5])
print "Hex:", hex
print "R:", r, "G:", g, "B:", b

function main():
hex_to_rgb("FA8072")
hex_to_rgb("03FFA2")
hex_to_rgb("FFFFFF")
```
```

## Code Solution

Here given code implementation process.

``````// C program
// Hex to RGB color
#include <stdio.h>
#include <string.h>

// Returns the decimal code of given hex
int color_code(char color)
{
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color - 48);
}
else if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color - 87);
}
else if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
void hex_to_rgb(char *hex)
{
// Get the length
int digits = strlen(hex);
if (digits != 6)
{
printf("\n Invalid Hex color code [%s]\n", hex);
return;
}
// Calculate color code
int r = (color_code(hex[0]) *16) + (color_code(hex[1]));
int g = (color_code(hex[2]) *16) + (color_code(hex[3]));
int b = (color_code(hex[4]) *16) + (color_code(hex[5]));
// Display calculated result
printf(" Hex : %s \n R : %d  G : %d  B : %d \n", hex, r, g, b);
}
int main()
{
// Test Case
hex_to_rgb("fa8072");
hex_to_rgb("03ffa2");
hex_to_rgb("ffffff");
return 0;
}``````

#### Output

`````` Hex : fa8072
R : 250  G : 128  B : 114
Hex : 03ffa2
R : 3  G : 255  B : 162
Hex : ffffff
R : 255  G : 255  B : 255``````
``````/*
Java Program
RGB to HSL color
*/
public class ColorConversion
{
// Returns the decimal code of given hex
public int color_code(char color)
{
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color - 48);
}
else if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color - 87);
}
else if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
public void hex_to_rgb(String hex)
{
// Get the length
int digits = hex.length();
if (digits != 6)
{
System.out.print("\n Invalid Hex color code [" + hex + "]\n");
return;
}
// Calculate color code
int r = (color_code(hex.charAt(0)) * 16) + (color_code(hex.charAt(1)));
int g = (color_code(hex.charAt(2)) * 16) + (color_code(hex.charAt(3)));
int b = (color_code(hex.charAt(4)) * 16) + (color_code(hex.charAt(5)));
// Display calculated result
System.out.print(" Hex : " + hex + " \n R : " + r + " G : " + g + " B : " + b + " \n");
}
public static void main(String[] args)
{
ColorConversion color = new ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}
}``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````// Include header file
#include <iostream>
#include<string.h>

using namespace std;
/*
C++ Program
RGB to HSL color
*/

class ColorConversion
{
public:
// Returns the decimal code of given hex
int color_code(char color)
{
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color - 48);
}
else if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color - 87);
}
else if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
void hex_to_rgb(string hex)
{
// Get the length
int digits = hex.size();
if (digits != 6)
{
cout << "\n Invalid Hex color code [" << hex << "]\n";
return;
}
// Calculate color code
int r = (this->color_code(hex[0]) *16) + (this->color_code(hex[1]));
int g = (this->color_code(hex[2]) *16) + (this->color_code(hex[3]));
int b = (this->color_code(hex[4]) *16) + (this->color_code(hex[5]));
// Display calculated result
cout << " Hex : " << hex << " \n R : " << r << " G : " << g << " B : " << b << " \n";
}
};
int main()
{
ColorConversion color = ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
return 0;
}``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````// Include namespace system
using System;
/*
C# Program
RGB to HSL color
*/
public class ColorConversion
{
// Returns the decimal code of given hex
public int color_code(char color)
{
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color - 48);
}
else if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color - 87);
}
else if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
public void hex_to_rgb(String hex)
{
// Get the length
int digits = hex.Length;
if (digits != 6)
{
Console.Write("\n Invalid Hex color code [" + hex + "]\n");
return;
}
// Calculate color code
int r = (color_code(hex[0]) * 16) + (color_code(hex[1]));
int g = (color_code(hex[2]) * 16) + (color_code(hex[3]));
int b = (color_code(hex[4]) * 16) + (color_code(hex[5]));
// Display calculated result
Console.Write(" Hex : " + hex + " \n R : " + r + " G : " + g + " B : " + b + " \n");
}
public static void Main(String[] args)
{
ColorConversion color = new ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}
}``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````<?php
/*
Php Program
RGB to HSL color
*/
class ColorConversion
{
// Returns the decimal code of given hex
public	function color_code(\$color)
{
if (ord(\$color) >= ord('0') && ord(\$color) <= ord('9'))
{
//When hex digit, is a number
return (ord(\$color) - 48);
}
else if (ord(\$color) >= ord('a') && ord(\$color) <= ord('f'))
{
//when of hex digit is an lowercase letter
return (ord(\$color) - 87);
}
else if (ord(\$color) >= ord('A') && ord(\$color) <= ord('F'))
{
//when of hex digit is an uppercase letter
return (ord(\$color) - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
public	function hex_to_rgb(\$hex)
{
// Get the length
\$digits = strlen(\$hex);
if (\$digits != 6)
{
echo "\n Invalid Hex color code [". \$hex ."]\n";
return;
}
// Calculate color code
\$r = (\$this->color_code(\$hex[0]) * 16) + (\$this->color_code(\$hex[1]));
\$g = (\$this->color_code(\$hex[2]) * 16) + (\$this->color_code(\$hex[3]));
\$b = (\$this->color_code(\$hex[4]) * 16) + (\$this->color_code(\$hex[5]));
// Display calculated result
echo " Hex : ". \$hex ." \n R : ". \$r ." G : ". \$g ." B : ". \$b ." \n";
}
}

function main()
{
\$color = new ColorConversion();
// Test Case
\$color->hex_to_rgb("fa8072");
\$color->hex_to_rgb("03ffa2");
\$color->hex_to_rgb("ffffff");
}
main();``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````/*
Node Js Program
RGB to HSL color
*/
class ColorConversion
{
// Returns the decimal code of given hex
color_code(color)
{
if ((color).charCodeAt(0) >= ('0').charCodeAt(0) && (color).charCodeAt(0) <= ('9').charCodeAt(0))
{
//When hex digit, is a number
return ((color).charCodeAt(0) - 48);
}
else if ((color).charCodeAt(0) >= ('a').charCodeAt(0) && (color).charCodeAt(0) <= ('f').charCodeAt(0))
{
//when of hex digit is an lowercase letter
return ((color).charCodeAt(0) - 87);
}
else if ((color).charCodeAt(0) >= ('A').charCodeAt(0) && (color).charCodeAt(0) <= ('F').charCodeAt(0))
{
//when of hex digit is an uppercase letter
return ((color).charCodeAt(0) - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
hex_to_rgb(hex)
{
// Get the length
var digits = hex.length;
if (digits != 6)
{
process.stdout.write("\n Invalid Hex color code [" + hex + "]\n");
return;
}
// Calculate color code
var r = (this.color_code(hex[0]) * 16) + (this.color_code(hex[1]));
var g = (this.color_code(hex[2]) * 16) + (this.color_code(hex[3]));
var b = (this.color_code(hex[4]) * 16) + (this.color_code(hex[5]));
// Display calculated result
process.stdout.write(" Hex : " + hex + " \n R : " + r + " G : " + g + " B : " + b + " \n");
}
}

function main()
{
var color = new ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}
main();``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````#   Python 3 Program
#   RGB to HSL color

class ColorConversion :
#  Returns the decimal code of given hex
def color_code(self, color) :
if (ord(color) >= ord('0') and ord(color) <= ord('9')) :
# When hex digit, is a number
return (ord(color) - 48)

elif(ord(color) >= ord('a') and ord(color) <= ord('f')) :
# when of hex digit is an lowercase letter
return (ord(color) - 87)

elif(ord(color) >= ord('A') and ord(color) <= ord('F')) :
# when of hex digit is an uppercase letter
return (ord(color) - 55)

#  When not a valid code
return -1

#  Converting hex color to RGB color
def hex_to_rgb(self, hex) :
#  Get the length
digits = len(hex)
if (digits != 6) :
print("\n Invalid Hex color code [", hex ,"]")
return

#  Calculate color code
r = (self.color_code(hex[0]) * 16) + (self.color_code(hex[1]))
g = (self.color_code(hex[2]) * 16) + (self.color_code(hex[3]))
b = (self.color_code(hex[4]) * 16) + (self.color_code(hex[5]))
#  Display calculated result
print(" Hex : ", hex ," \n R : ", r ," G : ", g ," B : ", b ," ")

def main() :
color = ColorConversion()
#  Test Case
color.hex_to_rgb("fa8072")
color.hex_to_rgb("03ffa2")
color.hex_to_rgb("ffffff")

if __name__ == "__main__": main()``````

#### Output

`````` Hex :  fa8072
R :  250  G :  128  B :  114
Hex :  03ffa2
R :  3  G :  255  B :  162
Hex :  ffffff
R :  255  G :  255  B :  255``````
``````#   Ruby Program
#   RGB to HSL color

class ColorConversion
#  Returns the decimal code of given hex
def color_code(color)
if ((color).ord >= ('0').ord && (color).ord <= ('9').ord)
# When hex digit, is a number
return ((color).ord - 48)
elsif((color).ord >= ('a').ord && (color).ord <= ('f').ord)
# when of hex digit is an lowercase letter
return ((color).ord - 87)
elsif((color).ord >= ('A').ord && (color).ord <= ('F').ord)
# when of hex digit is an uppercase letter
return ((color).ord - 55)
end

#  When not a valid code
return -1
end

#  Converting hex color to RGB color
def hex_to_rgb(hex)
#  Get the length
digits = hex.length()
if (digits != 6)
print("\n Invalid Hex color code [", hex ,"]\n")
return
end

#  Calculate color code
r = (self.color_code(hex[0]) * 16) + (self.color_code(hex[1]))
g = (self.color_code(hex[2]) * 16) + (self.color_code(hex[3]))
b = (self.color_code(hex[4]) * 16) + (self.color_code(hex[5]))
#  Display calculated result
print(" Hex : ", hex ," \n R : ", r ," G : ", g ," B : ", b ," \n")
end

end

def main()
color = ColorConversion.new()
#  Test Case
color.hex_to_rgb("fa8072")
color.hex_to_rgb("03ffa2")
color.hex_to_rgb("ffffff")
end

main()``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255
``````
``````/*
Scala Program
RGB to HSL color
*/
class ColorConversion
{
// Returns the decimal code of given hex
def color_code(color: Char): Int = {
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color - 48);
}
else if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color - 87);
}
else if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
def hex_to_rgb(hex: String): Unit = {
// Get the length
var digits: Int = hex.length();
if (digits != 6)
{
print("\n Invalid Hex color code [" + hex + "]\n");
return;
}
// Calculate color code
var r: Int = (this.color_code(hex(0)) * 16) + (this.color_code(hex(1)));
var g: Int = (this.color_code(hex(2)) * 16) + (this.color_code(hex(3)));
var b: Int = (this.color_code(hex(4)) * 16) + (this.color_code(hex(5)));
// Display calculated result
print(" Hex : " + hex + " \n R : " + r + " G : " + g + " B : " + b + " \n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var color: ColorConversion = new ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}
}``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````
``````/*
Swift 4 Program
RGB to HSL color
*/
class ColorConversion
{
// Returns the decimal code of given hex
func color_code(_ color: Character)->Int
{
if (color >= "0" && color <= "9")
{
//When hex digit, is a number
return Int(UnicodeScalar(String(color))!.value) - 48;
}
else if (color >= "a" && color <= "f")
{
//when of hex digit is an lowercase letter
return Int(UnicodeScalar(String(color))!.value) - 87;
}
else if (color >= "A" && color <= "F")
{
//when of hex digit is an uppercase letter
return Int(UnicodeScalar(String(color))!.value) - 55;
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
func hex_to_rgb(_ hex_code: String)
{
// Get the length
let digits: Int = hex_code.count;
if (digits != 6)
{
print("\n Invalid Hex color code [", hex_code ,"]");
return;
}
let hex = Array(hex_code);
// Calculate color code
let r: Int = (self.color_code(hex[0]) * 16) + (self.color_code(hex[1]));
let g: Int = (self.color_code(hex[2]) * 16) + (self.color_code(hex[3]));
let b: Int = (self.color_code(hex[4]) * 16) + (self.color_code(hex[5]));
// Display calculated result
print(" Hex : ", hex_code ," \n R : ", r ," G : ", g ," B : ", b ," ");
}
}
func main()
{
let color: ColorConversion = ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}
main();``````

#### Output

`````` Hex :  fa8072
R :  250  G :  128  B :  114
Hex :  03ffa2
R :  3  G :  255  B :  162
Hex :  ffffff
R :  255  G :  255  B :  255``````
``````/*
Kotlin Program
RGB to HSL color
*/
class ColorConversion
{
// Returns the decimal code of given hex
fun color_code(color: Char): Int
{
if (color >= '0' && color <= '9')
{
//When hex digit, is a number
return (color.toInt() - 48);
}
else
if (color >= 'a' && color <= 'f')
{
//when of hex digit is an lowercase letter
return (color.toInt() - 87);
}
else
if (color >= 'A' && color <= 'F')
{
//when of hex digit is an uppercase letter
return (color.toInt() - 55);
}
// When not a valid code
return -1;
}
// Converting hex color to RGB color
fun hex_to_rgb(hex: String): Unit
{
// Get the length
var digits: Int = hex.count();
if (digits != 6)
{
print("\n Invalid Hex color code [" + hex + "]\n");
return;
}
// Calculate color code
var r: Int = (this.color_code(hex[0]) * 16) + (this.color_code(hex[1]));
var g: Int = (this.color_code(hex[2]) * 16) + (this.color_code(hex[3]));
var b: Int = (this.color_code(hex[4]) * 16) + (this.color_code(hex[5]));
// Display calculated result
print(" Hex : " + hex + " \n R : " + r + " G : " + g + " B : " + b + " \n");
}
}
fun main(args: Array<String>): Unit
{
var color: ColorConversion = ColorConversion();
// Test Case
color.hex_to_rgb("fa8072");
color.hex_to_rgb("03ffa2");
color.hex_to_rgb("ffffff");
}``````

#### Output

`````` Hex : fa8072
R : 250 G : 128 B : 114
Hex : 03ffa2
R : 3 G : 255 B : 162
Hex : ffffff
R : 255 G : 255 B : 255``````

## Output Explanation

The given program converts the hex color codes to their respective RGB values. The provided test cases demonstrate this conversion:

• Hex code "FA8072" corresponds to the RGB values R: 250, G: 128, B: 114.
• Hex code "03FFA2" corresponds to the RGB values R: 3, G: 255, B: 162.
• Hex code "FFFFFF" corresponds to the RGB values R: 255, G: 255, B: 255, representing the color white.

## Time Complexity Analysis

The time complexity of the provided code is primarily determined by the length of the hex color code, which is constant (6 characters). Therefore, the time complexity of the `hex_to_rgb` function is O(1).

## Finally

In this article, we discussed the problem of converting hex color codes to RGB values. We provided an algorithm and pseudocode to solve the problem, along with an explanation of the program's output. The provided code demonstrates a simple and efficient way to convert hex color codes to their corresponding RGB values, allowing developers to work with colors more flexibly in their programs or web applications.

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.