/** * color: Fun with RGB colors. */ // +---------+-------------------------------------------------------- // | Headers | // +---------+ #include // +---------+-------------------------------------------------------- // | Helpers | // +---------+ int rgb (int red, int green, int blue) { red = red << 16; // shifted by 16 green = green << 8; // shifted by 8 blue = blue; // not shifted at all return red | green | blue; } // rgb int red (int rgb) { return (rgb >> 16) & 255; } // red void helper (int red, int green, int blue) { printf ("(%d,%d,%d) => %d\n", red, green, blue, rgb (red, green, blue)); } // helper // +------+----------------------------------------------------------- // | Main | // +------+ int main () { helper (255,0,0); helper (255,0,255); helper (127, 127, 127); printf ("%d", red (rgb (255, 0, 0))); printf ("%d", red (rgb (255, 127, 16))); printf ("%d", red (rgb (15, 127, 16))); printf ("%d", red (rgb (15, 127, 127))); return 0; } // main