【发布时间】:2020-02-28 00:58:02
【问题描述】:
项目: 每个字符的数字 ASCII 值加 1。 将其转换为位字符串。 将此字符串的位向左移动一位。 加密字符串中的单空格字符分隔生成的位字符串。
程序输入输出示例如下:
输入消息:Hello world!
0010011 1001101 1011011 1011011 1100001 000011 1110001 1100001 1100111 1011011 1001011 000101
# Put your code here
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)
#Shift Left
length = len(Binary_string)-1
start = 1
shiftLeft = ''
while length !=0:
shiftLeft = shiftLeft + Binary_string[start] + " "
length -= 1
start += 1
shiftLeft += Binary_string[0]
print(shiftLeft)
我的结果: 输入消息:Hello world!
[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33, 92]
[73, 102, 109, 109, 112, 33, 120, 112, 115, 109, 101, 34, 93]
['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
0 0 0 0 0 0 0 0 0 0 0 0 0
****最大的目标是做这个老派,即不使用内置函数,而是使用循环
【问题讨论】:
标签: python string type-conversion bit-manipulation ascii