Related Articles

# Convert the given RGB color code to Hex color code

• Last Updated : 19 May, 2021

Given three colors, such as R, G, and B, convert these RGB color to a hex color code. If the conversion is not possible, print -1.

Examples:

Input: R = 0, G = 0, B = 0
Output: #000000

Input: R = 255, G = 255, B = 256
Output: -1
Explanation:
A 256 color code is not possible as only the 0-255 range is available for a color.

Approach:

1. First, check if each of the given colors is in the range 0-255 or not.
2. If not, then print -1 and exit the program as no conversion is possible in this case.
3. If they are in range, then for each color, convert the given color code into its equivalent hexadecimal number.
4. If the hexadecimal value is 1 digit, add 0 to the left to make it 2 digits.
5. Then, in the final answer, add ‘#’ at the start, followed by the hexadecimal values of R, G, and B respectively.

Below is the implementation of the above approach.

## C++

 `// C++ code to convert the given RGB``// color code to Hex color code` `#include ``using` `namespace` `std;` `// function to convert decimal to hexadecimal``string decToHexa(``int` `n)``{``    ``// char array to store hexadecimal number``    ``char` `hexaDeciNum[2];` `    ``// counter for hexadecimal number array``    ``int` `i = 0;``    ``while` `(n != 0) {` `        ``// temporary variable to store remainder``        ``int` `temp = 0;` `        ``// storing remainder in temp variable.``        ``temp = n % 16;` `        ``// check if temp < 10``        ``if` `(temp < 10) {``            ``hexaDeciNum[i] = temp + 48;``            ``i++;``        ``}``        ``else` `{``            ``hexaDeciNum[i] = temp + 55;``            ``i++;``        ``}` `        ``n = n / 16;``    ``}` `    ``string hexCode = ``""``;``    ``if` `(i == 2) {``        ``hexCode.push_back(hexaDeciNum[0]);``        ``hexCode.push_back(hexaDeciNum[1]);``    ``}``    ``else` `if` `(i == 1) {``        ``hexCode = ``"0"``;``        ``hexCode.push_back(hexaDeciNum[0]);``    ``}``    ``else` `if` `(i == 0)``        ``hexCode = ``"00"``;` `    ``// Return the equivalent``    ``// hexadecimal color code``    ``return` `hexCode;``}` `// Function to convert the``// RGB code to Hex color code``string convertRGBtoHex(``int` `R, ``int` `G, ``int` `B)``{``    ``if` `((R >= 0 && R <= 255)``        ``&& (G >= 0 && G <= 255)``        ``&& (B >= 0 && B <= 255)) {` `        ``string hexCode = ``"#"``;``        ``hexCode += decToHexa(R);``        ``hexCode += decToHexa(G);``        ``hexCode += decToHexa(B);` `        ``return` `hexCode;``    ``}` `    ``// The hex color code doesn't exist``    ``else``        ``return` `"-1"``;``}` `// Driver program to test above function``int` `main()``{``    ``int` `R = 0, G = 0, B = 0;``    ``cout << convertRGBtoHex(R, G, B) << endl;` `    ``R = 255, G = 255, B = 255;``    ``cout << convertRGBtoHex(R, G, B) << endl;` `    ``R = 25, G = 56, B = 123;``    ``cout << convertRGBtoHex(R, G, B) << endl;` `    ``R = 2, G = 3, B = 4;``    ``cout << convertRGBtoHex(R, G, B) << endl;` `    ``R = 255, G = 255, B = 256;``    ``cout << convertRGBtoHex(R, G, B) << endl;` `    ``return` `0;``}`

## Java

 `// Java code to convert the given RGB``// color code to Hex color code`` `  `import` `java.util.*;` `class` `GFG{`` ` `// function to convert decimal to hexadecimal``static` `String decToHexa(``int` `n)``{``    ``// char array to store hexadecimal number``    ``char` `[]hexaDeciNum = ``new` `char``[``2``];`` ` `    ``// counter for hexadecimal number array``    ``int` `i = ``0``;``    ``while` `(n != ``0``) {`` ` `        ``// temporary variable to store remainder``        ``int` `temp = ``0``;`` ` `        ``// storing remainder in temp variable.``        ``temp = n % ``16``;`` ` `        ``// check if temp < 10``        ``if` `(temp < ``10``) {``            ``hexaDeciNum[i] = (``char``) (temp + ``48``);``            ``i++;``        ``}``        ``else` `{``            ``hexaDeciNum[i] = (``char``) (temp + ``55``);``            ``i++;``        ``}`` ` `        ``n = n / ``16``;``    ``}`` ` `    ``String hexCode = ``""``;``    ``if` `(i == ``2``) {``        ``hexCode+=hexaDeciNum[``0``];``        ``hexCode+=hexaDeciNum[``1``];``    ``}``    ``else` `if` `(i == ``1``) {``        ``hexCode = ``"0"``;``        ``hexCode+=hexaDeciNum[``0``];``    ``}``    ``else` `if` `(i == ``0``)``        ``hexCode = ``"00"``;`` ` `    ``// Return the equivalent``    ``// hexadecimal color code``    ``return` `hexCode;``}`` ` `// Function to convert the``// RGB code to Hex color code``static` `String convertRGBtoHex(``int` `R, ``int` `G, ``int` `B)``{``    ``if` `((R >= ``0` `&& R <= ``255``)``        ``&& (G >= ``0` `&& G <= ``255``)``        ``&& (B >= ``0` `&& B <= ``255``)) {`` ` `        ``String hexCode = ``"#"``;``        ``hexCode += decToHexa(R);``        ``hexCode += decToHexa(G);``        ``hexCode += decToHexa(B);`` ` `        ``return` `hexCode;``    ``}`` ` `    ``// The hex color code doesn't exist``    ``else``        ``return` `"-1"``;``}`` ` `// Driver program to test above function``public` `static` `void` `main(String[] args)``{``    ``int` `R = ``0``, G = ``0``, B = ``0``;``    ``System.out.print(convertRGBtoHex(R, G, B) +``"\n"``);`` ` `    ``R = ``255``; G = ``255``; B = ``255``;``    ``System.out.print(convertRGBtoHex(R, G, B) +``"\n"``);`` ` `    ``R = ``25``; G = ``56``; B = ``123``;``    ``System.out.print(convertRGBtoHex(R, G, B) +``"\n"``);`` ` `    ``R = ``2``; G = ``3``; B = ``4``;``    ``System.out.print(convertRGBtoHex(R, G, B) +``"\n"``);`` ` `    ``R = ``255``; G = ``255``; B = ``256``;``    ``System.out.print(convertRGBtoHex(R, G, B) +``"\n"``);`` ` `}``}` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 program to convert the given``# RGB color code to Hex color code` `# Function to convert decimal to hexadecimal``def` `decToHexa(n):` `    ``# char array to store hexadecimal number``    ``hexaDeciNum ``=` `[``'0'``] ``*` `100` `    ``# Counter for hexadecimal number array``    ``i ``=` `0``    ` `    ``while` `(n !``=` `0``):` `        ``# Temporary variable to store remainder``        ``temp ``=` `0` `        ``# Storing remainder in temp variable.``        ``temp ``=` `n ``%` `16` `        ``# Check if temp < 10``        ``if` `(temp < ``10``):``            ``hexaDeciNum[i] ``=` `chr``(temp ``+` `48``)``            ``i ``=` `i ``+` `1` `        ``else``:``            ``hexaDeciNum[i] ``=` `chr``(temp ``+` `55``)``            ``i ``=` `i ``+` `1` `        ``n ``=` `int``(n ``/` `16``)` `    ``hexCode ``=` `""``    ``if` `(i ``=``=` `2``):``        ``hexCode ``=` `hexCode ``+` `hexaDeciNum[``0``]``        ``hexCode ``=` `hexCode ``+` `hexaDeciNum[``1``]` `    ``elif` `(i ``=``=` `1``):``        ``hexCode ``=` `"0"``        ``hexCode ``=` `hexCode ``+` `hexaDeciNum[``0``]` `    ``elif` `(i ``=``=` `0``):``        ``hexCode ``=` `"00"` `    ``# Return the equivalent``    ``# hexadecimal color code``    ``return` `hexCode` `# Function to convert the``# RGB code to Hex color code``def` `convertRGBtoHex(R, G, B):` `    ``if` `((R >``=` `0` `and` `R <``=` `255``) ``and``        ``(G >``=` `0` `and` `G <``=` `255``) ``and``        ``(B >``=` `0` `and` `B <``=` `255``)):` `        ``hexCode ``=` `"#"``;``        ``hexCode ``=` `hexCode ``+` `decToHexa(R)``        ``hexCode ``=` `hexCode ``+` `decToHexa(G)``        ``hexCode ``=` `hexCode ``+` `decToHexa(B)``        ``return` `hexCode` `    ``# The hex color code doesn't exist``    ``else``:``        ``return` `"-1"` `# Driver Code``R ``=` `0``G ``=` `0``B ``=` `0``print` `(convertRGBtoHex(R, G, B))` `R ``=` `255``G ``=` `255``B ``=` `255``print` `(convertRGBtoHex(R, G, B))` `R ``=` `25``G ``=` `56``B ``=` `123``print` `(convertRGBtoHex(R, G, B))` `R ``=` `2``G ``=` `3``B ``=` `4``print` `(convertRGBtoHex(R, G, B))` `R ``=` `255``G ``=` `255``B ``=` `256``print` `(convertRGBtoHex(R, G, B))` `# This code is contributed by Pratik Basu`

## C#

 `// C# code to convert the given RGB``// color code to Hex color code``using` `System;` `class` `GFG{` `// Function to convert decimal``// to hexadecimal``static` `string` `decToHexa(``int` `n)``{``    ` `    ``// char array to store``    ``// hexadecimal number``    ``char` `[]hexaDeciNum = ``new` `char``[2];` `    ``// Counter for hexadecimal``    ``// number array``    ``int` `i = 0;``    ``while` `(n != 0)``    ``{` `        ``// Temporary variable to``        ``// store remainder``        ``int` `temp = 0;` `        ``// Storing remainder in``        ``// temp variable.``        ``temp = n % 16;` `        ``// Check if temp < 10``        ``if` `(temp < 10)``        ``{``            ``hexaDeciNum[i] = (``char``) (temp + 48);``            ``i++;``        ``}``        ``else``        ``{``            ``hexaDeciNum[i] = (``char``) (temp + 55);``            ``i++;``        ``}``        ``n = n / 16;``    ``}``    ``string` `hexCode = ``""``;``    ` `    ``if` `(i == 2)``    ``{``        ``hexCode += hexaDeciNum[0];``        ``hexCode += hexaDeciNum[1];``    ``}``    ``else` `if` `(i == 1)``    ``{``        ``hexCode = ``"0"``;``        ``hexCode += hexaDeciNum[0];``    ``}``    ``else` `if` `(i == 0)``        ``hexCode = ``"00"``;` `    ``// Return the equivalent``    ``// hexadecimal color code``    ``return` `hexCode;``}` `// Function to convert the``// RGB code to Hex color code``static` `string` `convertRGBtoHex(``int` `R, ``int` `G,``                                     ``int` `B)``{``    ``if` `((R >= 0 && R <= 255) &&``        ``(G >= 0 && G <= 255) &&``        ``(B >= 0 && B <= 255))``    ``{``        ``string` `hexCode = ``"#"``;``        ``hexCode += decToHexa(R);``        ``hexCode += decToHexa(G);``        ``hexCode += decToHexa(B);` `        ``return` `hexCode;``    ``}` `    ``// The hex color code doesn't exist``    ``else``        ``return` `"-1"``;``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ``int` `R = 0, G = 0, B = 0;``    ``Console.Write(convertRGBtoHex(R, G, B) + ``"\n"``);` `    ``R = 255; G = 255; B = 255;``    ``Console.Write(convertRGBtoHex(R, G, B) + ``"\n"``);` `    ``R = 25; G = 56; B = 123;``    ``Console.Write(convertRGBtoHex(R, G, B) + ``"\n"``);` `    ``R = 2; G = 3; B = 4;``    ``Console.Write(convertRGBtoHex(R, G, B) + ``"\n"``);` `    ``R = 255; G = 255; B = 256;``    ``Console.Write(convertRGBtoHex(R, G, B) + ``"\n"``);``}``}` `// This code is contributed by rutvik_56`

## Javascript

 ``
Output:
```#000000
#FFFFFF
#9183B7
#020304
-1```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up