It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free. --Steve McConnell

# Hexadecimal (Hex) to Decimal Lookup Table

## Summary

QUESTION: How do I easily convert hexadecimal numbers to decimal numbers and vice versa in a simple lookup table.

The table immediately follows, but see page 2 for the C# code that generated the table.

## Hex To Decimal Lookup Table

 D: 0-15 X: 0-F Dec Hex 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F
 D: 16-31 X: 10-1F Dec Hex 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B 28 1C 29 1D 30 1E 31 1F
 D: 32-47 X: 20-2F Dec Hex 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2A 43 2B 44 2C 45 2D 46 2E 47 2F
 D: 48-63 X: 30-3F Dec Hex 48 30 49 31 50 32 51 33 52 34 53 35 54 36 55 37 56 38 57 39 58 3A 59 3B 60 3C 61 3D 62 3E 63 3F
 D: 64-79 X: 40-4F Dec Hex 64 40 65 41 66 42 67 43 68 44 69 45 70 46 71 47 72 48 73 49 74 4A 75 4B 76 4C 77 4D 78 4E 79 4F
 D: 80-95 X: 50-5F Dec Hex 80 50 81 51 82 52 83 53 84 54 85 55 86 56 87 57 88 58 89 59 90 5A 91 5B 92 5C 93 5D 94 5E 95 5F
 D: 96-111 X: 60-6F Dec Hex 96 60 97 61 98 62 99 63 100 64 101 65 102 66 103 67 104 68 105 69 106 6A 107 6B 108 6C 109 6D 110 6E 111 6F
 D: 112-127 X: 70-7F Dec Hex 112 70 113 71 114 72 115 73 116 74 117 75 118 76 119 77 120 78 121 79 122 7A 123 7B 124 7C 125 7D 126 7E 127 7F
 D: 128-143 X: 80-8F Dec Hex 128 80 129 81 130 82 131 83 132 84 133 85 134 86 135 87 136 88 137 89 138 8A 139 8B 140 8C 141 8D 142 8E 143 8F
 D: 144-159 X: 90-9F Dec Hex 144 90 145 91 146 92 147 93 148 94 149 95 150 96 151 97 152 98 153 99 154 9A 155 9B 156 9C 157 9D 158 9E 159 9F
 D: 160-175 X: A0-AF Dec Hex 160 A0 161 A1 162 A2 163 A3 164 A4 165 A5 166 A6 167 A7 168 A8 169 A9 170 AA 171 AB 172 AC 173 AD 174 AE 175 AF
 D: 176-191 X: B0-BF Dec Hex 176 B0 177 B1 178 B2 179 B3 180 B4 181 B5 182 B6 183 B7 184 B8 185 B9 186 BA 187 BB 188 BC 189 BD 190 BE 191 BF
 D: 192-207 X: C0-CF Dec Hex 192 C0 193 C1 194 C2 195 C3 196 C4 197 C5 198 C6 199 C7 200 C8 201 C9 202 CA 203 CB 204 CC 205 CD 206 CE 207 CF
 D: 208-223 X: D0-DF Dec Hex 208 D0 209 D1 210 D2 211 D3 212 D4 213 D5 214 D6 215 D7 216 D8 217 D9 218 DA 219 DB 220 DC 221 DD 222 DE 223 DF
 D: 224-239 X: E0-EF Dec Hex 224 E0 225 E1 226 E2 227 E3 228 E4 229 E5 230 E6 231 E7 232 E8 233 E9 234 EA 235 EB 236 EC 237 ED 238 EE 239 EF
 D: 240-255 X: F0-FF Dec Hex 240 F0 241 F1 242 F2 243 F3 244 F4 245 F5 246 F6 247 F7 248 F8 249 F9 250 FA 251 FB 252 FC 253 FD 254 FE 255 FF

## Why I Programmed a Hex to Dec Lookup Table?

So I'm sitting at my computer developing a website. I'm tweaking the colors trying to get 'em right. I try burlywood, cornflowerblue, saddlebrown and a few others. But I need more subtlety than the standard named colors. One of my graphics applications has a color picker eye-dropper so I decide to pull some colors off of one of the images.

Unfortunately, that application only gives me the decimal RGB values for the color. But I need a hex value to put in my stylesheet. So I go to Start->Programs->Accessories->Calculator and start typing in decimal numbers between 0 and 255 to determine their hex value. But I have 8 colors which amounts to 24 numbers I need to convert. This is going to take forever!

So I decided I needed a convenient lookup table. It wouldn't be fast exactly, but it would certainly speed things up. So I wrote a little program in C# to generate the table. And there it is above.

If you're interested in the C# method that generates the table, click to the next page.

## C# Code to General Hex to Decimal Lookup Table

Following is the C# code I wrote to generate the hexadecimal to decimal lookup table found on page 1.

Add the method to the code-behind page of an ASPX page. Be sure to add a Label named lblOutput and don't forget 'using System.Text' because I use the StringBuilder class to speed things up a bit.

(Obviously, you can adapt this for Windows Forms or console application, etc...)

C# Method. Generate Decimal to Hexadecimal Lookup Table
```public void GenerateHexDecConversionTable()
{
StringBuilder sb = new StringBuilder();

sb.Append("<table cellpadding=15 cellspacing=0 "
+ "border=1 border-color=gainsboro>");

for (int i=0; i<256; i++)
{
if ( i%(16) == 0) // if we're beginning a new multiple of 16
{
if (i != 0) // if it's not the first multiple of 16
sb.Append("</table cellpadding=4 cellspacing=0></td>");
if ( i%64 == 0) // if we're beginning a new multiple of 64
{
if (i != 0) // if it's not the first multiple of 64
sb.Append("</tr>");
sb.Append("<tr>");
}
sb.Append("<td align=center><table>");
sb.Append("<tr><td colspan=2><B>D: </b>"
+ i.ToString() + "-" + (i+15).ToString()
+ "</td></tr>");
sb.Append("<tr><td colspan=2><b>X: </b>"
+ i.ToString("X") + "-" + (i+15).ToString("X")
+ "</td></tr>");
sb.Append("<tr><td align=center><b>Dec</b></td>"
+ "<td><b>Hex</b></td></tr>");
}
if (i%2 == 0)
{
sb.Append("<tr><td align=center "
+ "style='font-weight:bold;background-color:black;color:white;'>"
+ i.ToString() + "</td><td align=center "
+ "style='font-weight:bold;background-color:white;color:black;'>"
+ i.ToString("X") + "</td></tr>");
}
else
{
sb.Append("<tr><td align=center "
+ "style="
+ "'font-weight:bold;background-color:dimgray;color:white;'>"
+ i.ToString() + "</td><td align=center "
+ "style="
+ "'font-weight:bold;background-color:gainsboro;color:black;'>"
+ i.ToString("X") + "</td></tr>");
}
}

sb.Append("</table></td></tr>");
sb.Append("</table>");

lblOutput.Text = sb.ToString();
}```

Version: 6.0.20200920.1535