Convert the given RGB color code to Hex color code - GeeksforGeeks

17 Nov, 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:
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.
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++
Java
Python3
C#
Javascript
// C++ code to convert the given RGB// color code to Hex color code #include <iostream>using namespace std; // function to convert decimal to hexadecimalstring 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 codestring 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 functionint 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 code to convert the given RGB// color code to Hex color code   import java.util.*; class GFG{  // function to convert decimal to hexadecimalstatic 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 codestatic 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 functionpublic 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 program to convert the given# RGB color code to Hex color code # Function to convert decimal to hexadecimaldef 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 codedef 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 CodeR = 0G = 0B = 0print (convertRGBtoHex(R, G, B)) R = 255G = 255B = 255print (convertRGBtoHex(R, G, B)) R = 25G = 56B = 123print (convertRGBtoHex(R, G, B)) R = 2G = 3B = 4print (convertRGBtoHex(R, G, B)) R = 255G = 255B = 256print (convertRGBtoHex(R, G, B)) # This code is contributed by Pratik Basu
// C# code to convert the given RGB// color code to Hex color codeusing System; class GFG{ // Function to convert decimal// to hexadecimalstatic 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 codestatic 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 codepublic 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
<script> // Javascript code to convert the given RGB// color code to Hex color code // function to convert decimal to hexadecimalfunction 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 codefunction 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>
#000000
#FFFFFF
#9183B7
#020304
-1
 
Time Complexity: O(log16N)
Auxiliary Space: O(1)
29AjayKumar
PratikBasu
rutvik_56
splevel62
subham348
base-conversion
Mathematical
Pattern Searching
Mathematical
Pattern Searching
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Print all possible combinations of r elements in a given array of size n
Program for factorial of a number
KMP Algorithm for Pattern Searching
Rabin-Karp Algorithm for Pattern Searching
Naive algorithm for Pattern Searching
Check if a string is substring of another
Boyer Moore Algorithm for Pattern Searching