C Program to convert binary to hexadecimal number

Program

#include<stdio.h>
long int binary_hexa(long int binary)
{
    long int hexadecimal = 0, i = 1, remainder;
    while (binary != 0)
    {
        remainder = binary % 10;
        hexadecimal = hexadecimal + remainder * i;
        i = i * 2;
        binary = binary / 10;
    }
    return hexadecimal;
}
int main()
{
    long int binary;
    printf("Enter the binary number: ");
    scanf("%ld", &binary);
    printf("Equivalent hexadecimal value: %lX", binary_hexa(binary));
    return 0;
}

Output

$ gcc convert-binary-to-hexa.c
$ ./a.out
Enter the binary number: 01101110
Equivalent hexadecimal value: 6E