📜  Python将二进制转换为字符串

📅  最后修改于: 2020-07-30 01:08:13             🧑  作者: Mango

数据转换一直是广泛使用的实用程序,其中之一可以是等效于其字符串的二进制转换。
让我们讨论实现此目的的某些方法。

方法1:

天真的方法是通过将二进制数字的总和(dn)乘以它们的乘方幂来将给定的二进制数据转换为十进制2*(2^n)。二进制数据分为7位,因为这组二进制作为输入,返回相应的十进制值,该值是ASCII字符串字符的代码。然后使用chr()功能将该ASCII代码转换为字符串。

注意:这里我们将二进制数据切片为7组,因为原始ASCII表是按7位编码的,因此它具有128个字符。

# Python3代码演示使用BinarytoDecimal(binary)+ chr()将二进制转换为字符串的工作
   
  
# 定义BinarytoDecimal()函数 
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("二进制值为:", bin_data) 
   
# 初始化一个空字符串以存储字符串数据 
str_data =' '
   
# 切分输入并将其转换为十进制,然后将其转换为字符串 
for i in range(0, len(bin_data), 7): 
      
    # 从索引范围[0,6]切片bin_data并将其存储为temp_data中的整数 
    temp_data = int(bin_data[i:i + 7]) 
       
    # 在BinarytoDecimal()函数中传递temp_data以获取相应temp_data的十进制值 
    decimal_data = BinaryToDecimal(temp_data) 
       
    # 使用chr()函数解码BinarytoDecimal()函数返回的十进制值,该函数返回给定ASCII值的字符串对应字符,并将其存储在str_data中 
    str_data = str_data + chr(decimal_data)  
   
# 打印结果 
print("字符串转换后的二进制值是:",  
       str_data) 

输出:

二进制值为: 10001111100101110010111010111110011
字符串转换后的二进制值是:  Geeks

方法2:使用int()函数
每当一个int()函数提供两个参数时,它就告诉该int()函数第二个参数是输入字符串的基数。如果输入字符串大于10,则Python假定下一个数字序列来自ABCD...。因此,此概念可用于将二进制序列转换为字符串。下面是实现。

# Python3代码演示使用BinarytoDecimal(binary)+ chr()将二进制转换为字符串的工作
   
  
# 定义BinarytoDecimal()函数 
def BinaryToDecimal(binary): 
      
    # Using int function to convert to 
    # string    
    string = int(binary, 2) 
      
    return string 
      
# 驱动程序代码初始化二进制数据 
bin_data ='10001111100101110010111010111110011'
   
# 打印二进制数据 
print("二进制值为:", bin_data) 
   
# 初始化一个空字符串以存储字符串数据 
str_data =' '
   
# 切分输入并将其转换为十进制,然后将其转换为字符串 
for i in range(0, len(bin_data), 7): 
      
    # 从索引范围[0,6]切片bin_data并将其存储在temp_data中 
    temp_data = bin_data[i:i + 7] 
       
    # 在BinarytoDecimal()函数中传递temp_data以获取相应temp_data的十进制值 
    decimal_data = BinaryToDecimal(temp_data) 
       
    # 使用chr()函数解码BinarytoDecimal()函数返回的十进制值,该函数返回给定ASCII值的字符串对应字符,并将其存储在str_data中 
    str_data = str_data + chr(decimal_data)  
  
# 打印结果 
print("字符串转换后的二进制值是:", 
       str_data) 

输出:

二进制值为: 10001111100101110010111010111110011
字符串转换后的二进制值是:  Geeks