RGB and Hexadecimal

RGB color describes a color as a combination of red, green, and blue light. The standard representation for RGB color is a series of 3 8-bit numbers; that is three numbers between 0 and 255. (This is not the only representation, -- since 255 is awkward to do math with, sometimes colors are represented as three floating-point numbers, so each color is in the range of 0.0 to 1.0. If you know about floating-point numbers, though, you'll know that this representation requires four times as much space).

A common way of representing numbers on a computer is hexadecimal. Like the name implies, hexadecimal has 16 digits: 0 through 9, and then a, b, c, d, e, f. a is equivalent to the decimal number 10. The hexadecimal 10 is equivalent to the decimal number 16. The hexadecimal number ff is equivalent to the decimal number 255, so the entire range of 8-bit numbers can be expressed in hexadecimal as 0x00 to 0xff (the 0x prefix is a common designator of hexadecimal). When designating RGB colors, the red, green, and blue channels are often concatenated to form one hexadecimal number. For example, 0x000000 is black, 0xff0000 is red, 0xffffff is white.

The <body bgcolor=... tag takes as an argument a hexadecimal representation of the color you want to use. Picking a color in RGB isn't exactly intuitive. It's usually best to browse using an HSV color-picker like the java applet below:

This is a placeholder for the java applet that your browser can't see
Color Picker Copyright ©1996. Masakazu Fujimiya

You can use any color picker though, as long as you know how to convert from what the color picker displays (usually 0-255) to what HTML wants as a tag (0x00-0xff). This is simply a matter of converting from base-10 (decimal) to base-16 (hexadecimal):

  1. Divide the number by 16, this number is the first digit of your hexadecimal value. Remember, 10 maps to a, 11 to b, ..., 15 to f.
  2. The remainder is the second digit.
  3. Do this for each channel of your RGB color
For example: our RGB color is (109, 10, 250)
  1. 109 / 16 = 6 (with a remainder of 13). The first digit is 6
  2. The remainder is 13 or d. The hexadecimal value for our red channel is 0x6d.
  3. Repeating this process for the entire RGB color yields a hexidecimal equivalent of 0x6d0afa.


Comments? Last modified: Thu Jun 20 12:30:29 1996