Convert the given RGB color code to Hex color code
Last Updated :
17 Nov, 2021
Improve
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: #000000Input: 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:
- First, check if each of the given colors is in the range 0-255 or not.
- If not, then print -1 and exit the program as no conversion is possible in this case.
- If they are in range, then for each color, convert the given color code into its equivalent hexadecimal number.
- If the hexadecimal value is 1 digit, add 0 to the left to make it 2 digits.
- 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 <iostream> 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
<script> // Javascript code to convert the given RGB // color code to Hex color code // function to convert decimal to hexadecimal function decToHexa(n) { // char array to store hexadecimal number let hexaDeciNum = Array.from({length: 2}, (_, i) => 0); // counter for hexadecimal number array let i = 0; while (n != 0) { // temporary variable to store remainder let temp = 0; // storing remainder in temp variable. temp = n % 16; // check if temp < 10 if (temp < 10) { hexaDeciNum[i] = String.fromCharCode(temp + 48); i++; } else { hexaDeciNum[i] = String.fromCharCode(temp + 55); i++; } n = Math.floor(n / 16); } let 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 function convertRGBtoHex(R, G, B) { if ((R >= 0 && R <= 255) && (G >= 0 && G <= 255) && (B >= 0 && B <= 255)) { let hexCode = "#" ; hexCode += decToHexa(R); hexCode += decToHexa(G); hexCode += decToHexa(B); return hexCode; } // The hex color code doesn't exist else return "-1" ; } // Driver Code let R = 0, G = 0, B = 0; document.write(convertRGBtoHex(R, G, B) + "<br/>" ); R = 255; G = 255; B = 255; document.write(convertRGBtoHex(R, G, B) + "<br/>" ); R = 25; G = 56; B = 123; document.write(convertRGBtoHex(R, G, B) + "<br/>" ); R = 2; G = 3; B = 4; document.write(convertRGBtoHex(R, G, B) + "<br/>" ); R = 255; G = 255; B = 256; document.write(convertRGBtoHex(R, G, B) + "<br/>" ); </script> |
Output:
#000000 #FFFFFF #9183B7 #020304 -1
Time Complexity: O(log16N)
Auxiliary Space: O(1)