So far all we've discussed is the Binary system. Now we're going to discuss other number systems, including the hexadecimal (Base16) system in particular. Any number could have its own exponential number system. We could measure a particular entity using the Base3 number system for instance. We could say 35 = 3x3x3x3x3 or 243, although this would be very impractical for computer use. Another number system you will come across in the computer and networking world is the Base16 number system. Here, instead of measuring in powers of 2 as in the binary system, we are measuring in powers of 16. The Base16 system works like this: you have 0 thru 9 just as in the base10 system, except you also have A thru F which represents the values 10 thru 15. A = 10, B = 11, C = 12, D = 13, E = 14, and F = 15. So the Hex system consists of 0 thru 9 and A thru F. Also, notice that the digits end at 15 and not 16. Why? Because 0 is factored in as well.
So what is the Hexadecimal Base16 system used for? Nowadays you will come across Hexadecimal quite frequently in the computer networking field. MAC addresses on network interface cards use Hexadecimal values, as so do the now highly implemented IPV6 network addressing scheme, which we will be talking about later on. Even data forensics programs work with the Hexadecimal system to find, locate, and retrieve data. For now we are more concerned with how to read and interpret data, but later we will learn how to manage that data in the form of data transfer thru networks and how hardware devices and logical protocols use the Hex numeric system to communicate data. The Hexadecimal numeric system gives computers and humans a way to represent very large numbers by implementing a low amount of digits.
Just as with the Binary and Decimal numeric systems, the Hexadecimal system has place values, but this time measured in powers of 16 instead of 2 or 10 as in the other systems. Lets take a look: 160 = 1 (any number to the zero power is = to 1 just as before), 161 which simply means 16x1 which = 16, 162 which is 16x16 which = 256. Remember, the exponent (super script) simply tells us the number of times we must multiply the given value of 16 by the number indicated. What about 163? This 16x16x16 which = 4,096, we could also say 16x16 = 256 and 256x16 = 4,096. So here's an example Hex number 49A5, what does this value equate to in Decimal so that we can make sense of it? Just as with the Binary system we are measuring values from left (lowest value or 0's place) to right (the highest value in multiples of 16 in this case). Looking back at our Hex value of 49A5 starting from the right and moving left, we have 5x160 which = 5 because 160 = 1, so we are multiplying 5x1 which = 5. The next digit is A (which equals 10). Here we need to multiply the value of A x 16 x the value of the exponents place value. A = 10, and A is in the 1's place (or the 16's place since 16x1=16), so we have 10x161, which means 10x16 since 161 = 16, and our answer is 10x16 which = 160. The next digit is 9 and it's in the 2's place (or the 256 place since 162=256) so we need to muliply 9x 16x16 or 9x256 which = 2,304 (9x162).And our last digit is 4. So we have 4x163 (4x16 to the 3rd power) which means 4x4,096 = 16,38410 (Base 10). Now we simply add these numbers together and we will have our Hexadecimal to Decimal conversion. 49A516 = 18,85310. As you can see Hex numbers can get very large very fast, this is what makes using the Hex numeric system so valuable for use with computers. We can give an address to every memory location in RAM (Random Access Memory) using the Hex system. If you were to reference a memory location in RAM using most any Windows operating system, the system would point to that memory locations Hex value as being its location. RAM typically consists of billions of capacitors, so having a numeric system that can reference very large numbers using less digits is really important in computer systems.Continue to Part 2