Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2013 07:48:25

phil
От:
Зарегистрирован: 2009-04-22
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Зеркальное отражение числа

Приветствую!
Мною написан скрипт для расчета lookup таблиц и вычисления контрольной суммы для CRC-16/CRC-32.
Скрипт работает хорошо, но хотелось бы привести его к нормальному состоянию, так сказать без костылей )))

Первый костыль, который я применил касается сабжа. Функция:

def reverse_poly(indata):
    mirror_list = []
    for i in bin(indata):
        mirror_list.append(i)
    reverse = mirror_list[2:]
    reverse.reverse()
    Polynomial_rev = 0
    cnt = Width
    for i in reverse:
        cnt -= 1
        if i == '1':
            Polynomial_rev += 2**cnt
    return(Polynomial_rev)
осуществляет зеркальное отражение двоичного числа. Как видите сделано через одно место.

Пожалуйста, проконсультируйте, как это делается правильно на python.
Спасибо!



Офлайн

#2 Март 1, 2013 08:29:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зеркальное отражение числа

def reverse(n):
    bin_n = bin(n)[2:]
    bin_n_rev = ''.join(reversed(bin_n))
    return int(bin_n_rev, 2)
print reverse(1232)



Офлайн

#3 Март 1, 2013 08:29:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зеркальное отражение числа

И это, почитайте PEP8



Офлайн

#4 Март 1, 2013 09:24:40

phil
От:
Зарегистрирован: 2009-04-22
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Зеркальное отражение числа

2FishHook, какая красота ))) Спасибо.
PEP8 прочитал, попробую применить на практике.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version