codescracker
python

Python Program to Convert Binary to Hexadecimal



« Previous Program Next Program »

In this article, we've created some programs in Python, to convert any binary number entered by user to its equivalent hexadecimal value. Here are the list of programs:

Note - Before creating these programs, if you're not aware about some steps used for the conversion, refer to Binary to Hexadecimal Conversion Steps and Formula to get every required things.

Binary to Hexadecimal with User-defined Code

To convert binary to hexadecimal number in Python, you have to ask from user to enter a number in binary number system to convert that number into hexadecimal number system as shown in the program given here.

The question is, write a Python program to convert binary to hexadecimal using while loop. Here is its answer:

# ----codescracker.com----

print("Enter the Binary Number: ")
bnum = int(input())

hex = 0
mul = 1
chk = 1
i = 0
hnum = []
while bnum!=0:
    rem = bnum%10
    hex = hex + (rem*mul)
    if chk%4==0:
        if hex<10:
            hex = hex+48
            val = chr(hex)
            hnum.insert(i, val)
        else:
            hex = hex+55
            val = chr(hex)
            hnum.insert(i, val)
        mul = 1
        hex = 0
        chk = 1
        i = i+1
    else:
        mul = mul*2
        chk = chk+1
    bnum = int(bnum/10)

if chk!=1:
    hex = hex+48
    val = chr(hex)
    hnum.insert(i, val)
if chk==1:
    i = i-1

print("\nEquivalent Hexadecimal Value = ", end="")
while i>=0:
    print(end=hnum[i])
    i = i-1
print()

Here is the initial output produced by this Python program:

binary to hexadecimal python

Now supply the input say 111011 and press ENTER key to convert it into its equivalent hexadecimal value and print the hexadecimal value on output as shown in the snapshot given below:

convert binary to hexadecimal python

Note - The chr() method is used to returns equivalent character to the Unicode specified as its argument.

The insert() method is used to insert an element to the list. Therefore the following statement:

hnum.insert(i, val)

can be treated as:

hnum[i] = val

That is, the value of val variable gets initialized to ith index of hnum list.

The dry run of above program, with user input 111011 goes like:

The condition:

if chk%4==0:

is applied to check four-four pair of binary digits to convert into its equivalent hexadecimal digit.

And the condition:

if hex<10:

is applied to check whether the equivalent hexadecimal digit is less than 10 or not. That is, if it is 10, 11, 12, ..., 15. Then we've to store A, B, C, ..., F in place of these.

For example, if hex digit is 12, then the condition hex<10 evaluates to be false, therefore its else's couterpart gets executed. And in place of 12 we've to store C. Therefore C gets stored through following block of code:

hex = hex+55
val = chr(hex)
hnum.insert(i, val)

Since hex=12, therefore hex+55 or 12+55 or 67 gets initialized to hex. And chr(hex) returns the corresponding character equals to the Unicode specified as its argument, that is the value of hex, 67. Since 67 is the ASCII value of C. Therefore val = C. And the value of val gets initialized to ith index of hnum.

Modified Version of Previous Program

This program is the modified version of previous one. The end= is used to skip printing of an automatic newline using print().

# ----codescracker.com----

print("Enter the Binary Number: ", end="")
bnum = int(input())

hex = 0
mul = 1
chk = 1
i = 0
hnum = []
while bnum!=0:
    rem = bnum%10
    hex = hex + (rem*mul)
    if chk%4==0:
        if hex<10:
            hnum.insert(i, chr(hex+48))
        else:
            hnum.insert(i, chr(hex+55))
        mul = 1
        hex = 0
        chk = 1
        i = i+1
    else:
        mul = mul*2
        chk = chk+1
    bnum = int(bnum/10)

if chk!=1:
    hnum.insert(i, chr(hex+48))
if chk==1:
    i = i-1

print("\nEquivalent Hexadecimal Value = ", end="")
while i>=0:
    print(end=hnum[i])
    i = i-1
print()

Here is its sample run with user input, 1101110:

python convert binary to hexadecimal

Binary to Hexadecimal using int() and hex()

This program uses int() and hex() methods to do the job of converting binary to hexadecimal.

# ----codescracker.com----

print("Enter the Binary Number: ", end="")
bnum = input()

b = int(bnum, 2)
hdnum = hex(b)
print("\nEquivalent Hexadecimal Value = ", hdnum)

Here is its sample run with user input 111101 as binary number:

binary to hexadecimal conversion python

While receiving the input, we've not specified the type, therefore the entered value by user gets treated as a string type value. And using int() method with 2 as its second argument, converted the given value into an integer type value of base 2, that is binary number.

And using hex() method, the binary number gets converted into its equivalent hexadecimal value.

Modified Version of Previous Program

This program uses hdnum[2:] to print element(s) starting from second index. That is, the first two characters gets skipped after applying [2:]. And upper() is used to capitalize the lowercase character.

# ----codescracker.com----

print("Enter the Binary Number: ", end="")
bnum = input()

b = int(bnum, 2)
hdnum = hex(b)
print("\nEquivalent Hexadecimal Value = ", hdnum[2:].upper())

Here is its sample run with user input, 11100111:

python convert binary to hexadecimal

Same Program in Other Languages

Python Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker