1 # -*- coding: cp936 -*- 2 pre_n = '010010000100001100000000000000000000000001010001001001001010000101' 3 print '编码过程……………………' 4 length = len(pre_n) 5 pre_list = list(pre_n) 6 for ch in range (0,length): 7 pre_list[ch] = int (pre_list[ch]) 8 store_list = pre_list 9 print pre_list10 ich = -1 ;11 for ch in range (0,length):12 if pre_list[ch] == 1 :13 ich = ich * (-1)14 pre_list[ch] = pre_list[ch]*ich;15 print pre_list16 pre_flag_num = 0;17 flag_zero = 0;18 for ch in range (0,length):19 if pre_list[ch] <> 0 :20 flag_num = pre_list[ch];21 flag_zero = 0;22 else:23 flag_zero += 1;24 if flag_zero == 4 :25 if flag_num == pre_flag_num :26 pre_list[ch-3] = flag_num * -1;27 pre_list[ch] = flag_num * -1;28 pre_flag_num = flag_num * -1;29 for ch_temp in range(ch+1,length):30 pre_list[ch_temp] = pre_list[ch_temp] * -131 else:32 pre_list[ch] = flag_num ;33 pre_flag_num = pre_list[ch];34 flag_zero = 0;35 print pre_list,'\n 解码过程………………'36 flag_zero = 0;37 for ch in range (0,length):38 if flag_zero == 2 :39 if flag_num == pre_list[ch]:40 flag_zero = 041 for ch_temp in range(ch-3, ch+1):42 pre_list[ch_temp] = 0;43 if flag_zero == 3 :44 if pre_list[ch] <> 0 :45 flag_zero = 0;46 for ch_temp in range(ch-3, ch+1):47 pre_list[ch_temp] = 0;48 if pre_list[ch] <> 0 :49 flag_num = pre_list[ch]50 flag_zero = 0;51 else:52 flag_zero += 1;53 pre_list[ch] = abs(pre_list[ch])54 print pre_list55 if pre_list is store_list:56 print "Successed ..."