Related Articles

# 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

### 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
35
10F
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