Python HDB3 AMI 编码与解码

 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_list

10 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_list

16 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] * -1

31         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 = 0

41             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_list

55 if pre_list is store_list:

56     print "Successed ..."

 

 

你可能感兴趣的:(python)