在計算機進行加密或解密過程中,經常會對字符串進行移位等變換操作。某字符串的變換規則描述如下:①輸入的字符為十六進制數(英文字母大寫,確保輸入的個數為 3 的倍數),如 4AC ②字符串中的每個字符轉成四位二進制,按序拼接,如 010010101100 ③二進制字符串每 4 位進行前后倒置(即4位數左右倒置)操作,如 001001010011 ④將倒置后的字符串每 3 位轉換成 1 位十進制,按序拼接后輸出該十進制串。運行結果如下圖所示: 根據該規則編寫的程序如下,請回答以下問題: (1)程序中加框處代碼有誤,請改正 (2)請在下橫線處補充完整程序 Hex={“0“:“0000“,“1“:“0001“,“2“:“0010“,“3“:“0011“,“4“:“0100“,“5“:“0101“,“6“:“0110“,“7“:“0111“,“8“:“1000“,“9“:“1001“,“A“:“1010“,“B“:“1011“,“C“:“1100“,“D“:“1101“,“E“:“1110“,“F“:“1111“} sch=input(“請輸入一個十六進制數(字母大寫):“) th=““ for k in sch: if“0“<=k<=“9“or“A“<=k<=“F“:#若 k 為數字字符或大寫字母 ①
th=th+Hex[k]
th=th+Hex[k]
#每 1 位十六進制轉成 4 位二進制 ts=““ for i in range(0,②
len(th),4
len(th),4
):#每 4 位進行前后倒置 ts+=th[i+3]+th[i+2]+th[i+1]+th[i] tob=““ tmp=0 for i in range(len(ts)):#二進制串轉十進制 tmp=tmp*2+int(ts[i])#累乘相加轉換成十進制 if :#每 3 個字符為一組進行轉換后的拼接 tob=tob+str(tmp) tmp=0 print(“變換后的字符串為:“,tob)