Найти - Пользователи
Полная версия: Зеркальное отражение числа
Начало » Python для новичков » Зеркальное отражение числа
1
phil
Приветствую!
Мною написан скрипт для расчета 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.
Спасибо!
FishHook
def reverse(n):
    bin_n = bin(n)[2:]
    bin_n_rev = ''.join(reversed(bin_n))
    return int(bin_n_rev, 2)
print reverse(1232)
FishHook
И это, почитайте PEP8
phil
2FishHook, какая красота ))) Спасибо.
PEP8 прочитал, попробую применить на практике.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB