Python Program to Convert Binary to Hexadecimal

14 Sep, 2021
Given a binary number, the task is to write a Python program to convert the given binary number into an equivalent hexadecimal number. i.e convert the number with base value 2 to base value 16. In hexadecimal representation we 16 values to represent a number. Numbers 0-9 are expressed by digits 0-9 and 10-15 are represented by characters from A – F.
Example:
Input:  1111
Output: F

Input: 110101
Output: 35

Input: 100001111
Output: 10F
Step 1:  Input binary number.
Input: 111101111011
Step 2: Divide your binary number into groups of four, starting from right. 
111101111011 = (1111)(0111)(1011)
Step 3: Convert one 4-digit group of a binary number to one hexadecimal digit. 
(1111)(0111)(1011) = F7B
Below is the Python implementation of the above approach:
Python3
# Python code to convert binary number# into hexadecimal number  # function to convert# binary to hexadecimal  def binToHexa(n):    bnum = int(n)    temp = 0    mul = 1          # counter to check group of 4    count = 1          # char array to store hexadecimal number    hexaDeciNum = ['0'] * 100          # counter for hexadecimal number array    i = 0    while bnum != 0:        rem = bnum % 10        temp = temp + (rem*mul)                  # check if group of 4 completed        if count % 4 == 0:                        # check if temp < 10            if temp < 10:                hexaDeciNum[i] = chr(temp+48)            else:                hexaDeciNum[i] = chr(temp+55)            mul = 1            temp = 0            count = 1            i = i+1                      # group of 4 is not completed        else:            mul = mul*2            count = count+1        bnum = int(bnum/10)              # check if at end the group of 4 is not    # completed    if count != 1:        hexaDeciNum[i] = chr(temp+48)              # check at end the group of 4 is completed    if count == 1:        i = i-1              # printing hexadecimal number    # array in reverse order    print("\n Hexadecimal equivalent of {}:  ".format(n), end="")    while i >= 0:        print(end=hexaDeciNum[i])        i = i-1  # Driver codeif __name__ == '__main__':    binToHexa('1111')    binToHexa('110101')    binToHexa('100001111')    binToHexa('111101111011')
Output:
Hexadecimal equivalent of 1111:  F
Hexadecimal equivalent of 110101:  35
Hexadecimal equivalent of 100001111:  10F
Hexadecimal equivalent of 111101111011:  F7B
Step 1:  Input binary number.
Input: 111101111011 = (111101111011)2
Step 2: Convert binary number to decimal number.
(111101111011)2 = (3963)10
Step 3: Convert the above decimal number to a hexadecimal number.
(3963)10 = (F7B)16
Below is the Python implementation of the above approach:
Python3
# Python program to convert binary number# into hexadecimal number  # Function calculates the decimal equivalent# to given binary numberdef binaryToDecimal(binary):      binary1 = int(binary)    decimal, i, n = 0, 0, 0          while(binary1 != 0):        dec = binary1 % 10        decimal = decimal + dec * pow(2, i)        binary1 = binary1//10        i += 1    return(decimal)  # function to convert# decimal to hexadecimaldef decToHexa(n):      # char array to store    # hexadecimal number    hexaDeciNum = ['0'] * 100      # counter for hexadecimal    # number array    i = 0    while(n != 0):          # temporary variable        # to store remainder        temp = 0          # storing remainder        # in temp variable.        temp = n % 16          # check if temp < 10        if(temp < 10):            hexaDeciNum[i] = chr(temp + 48)            i = i + 1        else:            hexaDeciNum[i] = chr(temp + 55)            i = i + 1        n = int(n / 16)      # printing hexadecimal number    # array in reverse order    j = i - 1    while(j >= 0):        print((hexaDeciNum[j]), end="")        j = j - 1    print()  # function to convert binary to# hexadecimaldef binToHexa(n):    decimal = binaryToDecimal(n)    print("Hexadecimal equivalent of {}: ".format(n))    decToHexa(decimal)  # Driver codeif __name__ == '__main__':    binToHexa('1111')    binToHexa('110101')    binToHexa('100001111')    binToHexa('111101111011')
Output:
Hexadecimal equivalent of 1111: 
F
Hexadecimal equivalent of 110101: 
35
Hexadecimal equivalent of 100001111: 
10F
Hexadecimal equivalent of 111101111011: 
F7B
We use int() and hex() to convert a binary number to its equivalent hexadecimal number. Below is the Python implementation using int() and hex().
Python3
# Python code to convert from Binary# to Hexadecimal using int() and hex()def binToHexa(n):        # convert binary to int    num = int(n, 2)          # convert int to hexadecimal    hex_num = hex(num)    return(hex_num)  # Driver codeif __name__ == '__main__':    print(binToHexa('1111'))    print(binToHexa('110101'))    print(binToHexa('100001111'))    print(binToHexa('111101111011'))
Output:
0xf
0x35
0x10f
0xf7b
We use int() and format() to convert a binary number to its equivalent hexadecimal number. Below is the Python implementation using int() and format().
Python3
# Python code to convert from Binary# to hexadecimal using format()def binToHexa(n):        # convert binary to int    num = int(n, 2)          # convert int to hexadecimal    hex_num = format(num, 'x')    return(hex_num)  # Driver codeif __name__ == '__main__':    print(binToHexa('1111'))    print(binToHexa('110101'))    print(binToHexa('100001111'))    print(binToHexa('111101111011'))
Output:
f
35
10f
f7b
Blogathon-2021
Picked
Blogathon
Python
Python Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Import JSON Data into SQL Server?
SQL Query to Convert Datetime to Date
Python program to convert XML to Dictionary
Scrape LinkedIn Using Selenium And Beautiful Soup in Python
How to toggle password visibility in forms using Bootstrap-icons ?
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe