Перевод кода с Python на C++
есть код на Python необходимо написать его же на с++, знания в python = 0, а задние необходимо выполнить, к сожалению сроки и занятость не позволят изучить python на нужном уровне. Сложность возникает в переводе самой логики работы кода
def calc_hash(proc_name):
result = 0
for c in proc_name:
if ord(c) < ord('A') or ord(c) > ord('Z'):
b = ord(c)
else:
b = ord(c) + 0x20
result = (0x19660D * result + b + 0x3C6EF35F) & 0xFFFFFFFF
return result
proc_name = (input('input:'))
hex_out = ""
hex_out = calc_hash(proc_name)
print("IS", hex_out)
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
знания в python = 0
данный код:
- выводит на экран текст
input: - и ждет ввода строки
- после чего по строке вычисляется хэш
- хэш выводится на экран как
is <хэш>
Сам хэш считается по следующему алгоритму:
проходим по всем буквам строки
если буква лежит вне диапазона
A..Z, то накапливаем хэш по формулеresult = (0x19660D * result + (int)c + 0x3C6EF35F) & 0xFFFFFFFFесли буква лежит в диапазоне
A..Z, то накапливаем хэш по формулеresult = (0x19660D * result + (int)(c + 0x20) + 0x3C6EF35F) & 0xFFFFFFFF
если в c++ знания != 0, то этого должно быть достаточно для перевода кода
P.S.
от себя могу добавить, что если будете работать с unsigned int то делать & 0xFFFFFFFF совершенно бессмысленно - ни на что не влияет