In this project, you will employ bitwise operations and bit masks for manipulating bits of an integer. The goal is to understand their significance in saving memory costs. This will be demonstrated and executed through two tasks: storing an image pixel (RGBA and representing weapon inventory in a video game. Checkpoint A (due as an in-person demo by Tu Feb 21 at 7pm): Download this C++ program (rgbFromHex.cpp) that reads a pixel in hexadecimal format and prints integer values (between 0-255) for R, G, B and A channels. Compile your program on terminal (once you are logged into your blue accounts): g++ -std c++11 rgbFromHex.cpp -o convertRGB Run your program and sample output ./conver tRGB Enter a 32-bit RGBA color value in hexadecimal Ce.g. FF7F3300 2BASE9CD Your color contains: 43 of 255 red 165 of 255 green 233 of 255 blue 205 of 255 alpha Task for checkpoint A: Your task is to write a new C++ program (call it rgbToHex.cpp) that does the opposite of the above program; That is, a program that reads integer values for R, G, B and A and prints the output in a hexadecimal format. You may assume that, when prompted, the user only enters values between 0- 255 Sample output for rgbToHex.cpp Enter a RGBA color value Ce.g. 255 127 51 0 26 43 60 77 Your color in hexadecimal is: la2b3c4d Enter a RGBA color value Ce.g. 255 127 51 0 205 88 2 95 Your color in hexadecimal is: cd58025f 
// Hello You can use simple function to convert rgba to hexadecimal
 string RGBAToHex(int rNum, int gNum, int bNum, int aNum)
 {
    string result;
    char r[255];  
    sprintf(r, \"%.2X\", rNum);
    result.append(r );
    char g[255];  
    sprintf(g, \"%.2X\", gNum);
    result.append(g );
    char b[255];  
    sprintf(b, \"%.2X\", bNum);
    result.append(b );
 char a[255];
 sprintf(a,\"%.2X\", aNum);
 result.append(a);
    return result;
 }
 int main(){
 int r,g,b,a;
 count<<\"enter the value of r\"<<endl;
 cin>>r;
 if(r<0 && r>255){
 cout<<\"Invalid Value for r\"<<endl;
 return -1;
 }
 count<<\"enter the value of g\"<<endl;
 cin>>g;
 if(g<0 && g>255){
 cout<<\"Invalid Value for g\"<<endl;
 return -1;
 }
 count<<\"enter the value of b\"<<endl;
 cin>>b;
 if(b<0 && b>255){
 cout<<\"Invalid Value for b\"<<endl;
 return -1;
 }
 count<<\"enter the value of a\"<<endl;
 cin>>a;
 if(a<0 && a>255){
 cout<<\"Invalid Value for a\"<<endl;
 return -1;
 cout<<\"RGBATO Hex \" << RGBAToHex(r,g,b,a);
 }