猿问

如何将 ASCII 转换为位字符串(二进制)

我正在寻找一个类似于此的循环,用于将ASCII转换为十进制,然后将十进制转换为二进制字符串:string = input(“Enter message: ”)


#Convert string from ASCII to Decimal

A_string = [ord(c) for c in string]

print(A_string)


# add 1 to ASCII value 

B_string = A_string

for i in range(len(B_string)):

    B_string[i] = B_string[i] + 1 

print(B_string)



#Decimal to Binary

decimal = B_string

remainder = decimal

Binary_string = decimal


for i in range(len(decimal)):

    remainder[i] = int(decimal[i])

    remainder[i] %= 2

    decimal[i] = decimal[i] // 2

    Binary_string[i] = str(remainder[i] + Binary_string[i])

print(Binary_string)

我不寻找的是这样的东西:


res = “”.join(f“{ord(shiftedChar):08b}”)


移位字符


我正在寻找基本的老式技术...使用基本除法、乘法、幂等对实际发生的情况进行编程


holdtom
浏览 132回答 1
1回答

婷婷同学_

从 https://stackoverflow.com/a/7397195/1675501首先,您需要去除 0b 前缀,并在字符串上以左零键填充,使其长度可被 8 整除,以便将位字符串向上划分为字符:bitstring = bitstring[2:] bitstring = -len(bitstring) % 8 * '0' + bitstring然后,将字符串划分为八个二进制数字块,将它们转换为 ASCII 字符,然后将它们连接回字符串:string_blocks = (bitstring[i:i+8] for i in range(0, len(bitstring), 8)) string = ''.join(chr(int(char, 2)) for char in string_blocks)如果您真的想将其视为一个数字,您仍然必须考虑这样一个事实,即如果您想从左到右而不是从右到左,最左边的字符最多只有七位数。
随时随地看视频慕课网APP

相关分类

Python
我要回答