Convert hex to binary

    Here you will learn how to convert hex to binary. These numeral systems both have a base that is an exact power of two: 16 = 24 and 2 = 21. Because of that, the conversion between the two systems is very, very easy. If you know how to convert between the other notations you will be surprised at how easy this is :)

Do you learn better from video?

Learn faster with deeper understanding!
The "Computer programming for beginners" course is the perfect place to begin with programming.

Start now!

Online hex to binaryconverter

Input the hexadecimal value The binary result is

Spaces
Spaces

The algorithm

    Hex to binary is probably the easiest conversion between the number systems. To turn a hexadecimal value to a binary number do the following

  1. Take each hex digit and replace it with its binary equivallent.
  2. There is no second step. That's it – told ya its easy ;-)

Here is a table that contains the hex-to-binary mappings:

Hex to binary conversion table

Examples

6416 = ?2
    616 = 01102, 416 = 01002
6416 = 011001002 or 0110 01002

F1A8016 = ?2
   F16 = 11112, 116 = 00012, A16 = 10102, 816 = 10002, 016 = 00002
F1A8016 = 111100011010100000002 or 1111 0001 1010 1000 00002

Creating a C converting program

    Download the source code of the example implementation from here: hex-to-bin.zip

    The hex to binary algorithm doesn't have any fancy tricks. It is straight forward work with strings.

    We begin by reading a hex number, up to 100 digits long. Of course we reserve one byte for the null terminating symbol. That's why the size of the array hex is 101 elements. After we read the input we begin the conversion in the hexToBinary function.

    The binary char pointer holds the result. Now, looking at the table above you see that for each hex digit we need exactly 4 binary digits. Plus we want to insert spaces between the digits, so the result is easier to read. That's why, we allocate 5 times the length of the input + 1 element for the terminating symbol.

    Then we loop through the hex value and take the corresponding binary string with a switch. The inner while just copies the current binary number into the pointer that holds the final result.

    Finally, we reset the binary pointer, so that it points to the beginning of the bin value.

That's it, really simple – just handling strings.

    int main(void)
    {
        char hex[101];
        int
length;

        int
validation;

        char
*binary;

        scanf(
"%100s", hex);

        length = strlen(hex);

        binary = hexToBinary(hex, length);

        printf(
"%s in hexadecimal is %sin binary\n", hex, binary);

        return
0;
    }

    char *hexToBinary(char *hex, int length)
    {
        char *binary = (char*) malloc(length * 5 + 1);
        if(binary == NULL)
            exit(1);
        while(*hex != '\0')
        {
            char *binaryValue = valueOf(*hex);
            while
(*binaryValue != '\0')

                *binary++ = *binaryValue++;

            ++hex;

        }

        *binary = '\0';
        binary -= length * 5;

        return
binary;

    }

See also how to convert from:

Do you learn better from video?

Learn faster with deeper understanding!
The "Computer programming for beginners" course is the perfect place to begin with programming.

Start now!


› Hex to binary

Did this help? Support me with your vote ;-)

Did this help?