According to Wiki's https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit article there are 8 "Standard colors" and 8 "High-intensity colors". When I checked terminal capability of the Linux' virtual console (tty) by tput colors it showed 8. However, if I print them in VT I get 16 distinct colors. Why is so that?
If you look closely, you can see that colors 0-7 are darker versions of 8 through 15.
This scheme is based on early text-mode hardware that used 4 bits to determine Red, Green, Blue and Intensity, like this:
-----------------
| 8 | 4 | 2 | 1 |
-----------------
| I | R | G | B |
-----------------
Add up the values for what you want. Light red = 8+4 = 12, for example.
Bits are arranged differently in your example, looks like 1=red, 2=green, 4=blue.
In this scheme there are 3 color bits, so 8 different colors (000 or black is a color) with 1 selectable brightness or intensity bit. This is what is meant by "8 standard colors and 8 high-intensity colors."
(These bits were stored in a section of memory called "attribute memory" - the other 4 bits could select a background color and turn on/off blinking mode.)
As far as why you are not seeing 256 colors, your terminal is probably not in 256 color mode or something like that.