Convert binary to string using Python
Last Updated :
05 Dec, 2022
Data conversion has always been widely used utility and one among them can be the conversion of a binary equivalent to its string.
Let’s discuss certain ways in which this can be done.
Method #1:
The naive approach is to convert the given binary data in decimal by taking the sum of binary digits (dn) times their power of 2*(2^n). The binary data is divided into sets of 7 bits because this set of binary as input, returns the corresponding decimal value which is ASCII code of the character of a string. This ASCII code is then converted to string using chr() function.
Note: Here we do slicing of binary data in the set of 7 because, the original ASCII table is encoded on 7 bits, therefore, it has 128 characters.
Python3
def BinaryToDecimal(binary):
binary1 = binary
decimal, i, n = 0 , 0 , 0
while (binary ! = 0 ):
dec = binary % 10
decimal = decimal + dec * pow ( 2 , i)
binary = binary / / 10
i + = 1
return (decimal)
bin_data = '10001111100101110010111010111110011'
print ( "The binary value is:" , bin_data)
str_data = ' '
for i in range ( 0 , len (bin_data), 7 ):
temp_data = int (bin_data[i:i + 7 ])
decimal_data = BinaryToDecimal(temp_data)
str_data = str_data + chr (decimal_data)
print ( "The Binary value after string conversion is:" ,
str_data)
|
Output
The binary value is: 10001111100101110010111010111110011
The Binary value after string conversion is: Geeks
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using int() function
Whenever an int() function is provided with two arguments, it tells the int() function that the second argument is the base of the input string. If the input string is larger than 10, then Python assumes that the next sequence of digits comes from ABCD… .Therefore, this concept can be used for converting a binary sequence to string. Below is the implementation.
Python3
def BinaryToDecimal(binary):
string = int (binary, 2 )
return string
bin_data = '10001111100101110010111010111110011'
print ( "The binary value is:" , bin_data)
str_data = ' '
for i in range ( 0 , len (bin_data), 7 ):
temp_data = bin_data[i:i + 7 ]
decimal_data = BinaryToDecimal(temp_data)
str_data = str_data + chr (decimal_data)
print ( "The Binary value after string conversion is:" ,
str_data)
|
Output
The binary value is: 10001111100101110010111010111110011
The Binary value after string conversion is: Geeks
Time Complexity: O(n)
Auxiliary Space: O(n)
Please Login to comment...