Skip to content
Related Articles

Related Articles

Improve Article

Python Program to Convert Binary to Hexadecimal

  • Last Updated : 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

Method 1: User-defined Code To Convert Binary to Hexadecimal

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 code
if __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

Method 2: First Convert Binary to Decimal and then Decimal to Hexadecimal

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 number
def 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 hexadecimal
def 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
# hexadecimal
def binToHexa(n):
    decimal = binaryToDecimal(n)
    print("Hexadecimal equivalent of {}: ".format(n))
    decToHexa(decimal)
  
# Driver code
if __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

Method 3: Using Predefined Functions

Example 1: Using int() and hex()

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 code
if __name__ == '__main__':
    print(binToHexa('1111'))
    print(binToHexa('110101'))
    print(binToHexa('100001111'))
    print(binToHexa('111101111011'))


Output:

0xf
0x35
0x10f
0xf7b

Example 2: Using int() and format()

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 code
if __name__ == '__main__':
    print(binToHexa('1111'))
    print(binToHexa('110101'))
    print(binToHexa('100001111'))
    print(binToHexa('111101111011'))


Output:

f
35
10f
f7b

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :