풀이 코드 내 질문
다른 부분은 이해를 했는데 마지막에 작성된
passwd += int.to_bytes(int(bit, 2), (bit_length + 7) // 8, "big").decode("utf-8")
이 부분이 이해가 되지 않습니다.. 알기 쉽게 자세히 설명을 부탁드려도 될까요? 감사합니다!
#web
작성자 정보
답변
1
l000wk3y
공부벌레
일단 int(string, base)
함수를 사용해서 bit에 저장된 string 값을 2진수 숫자로 변경하고요.
그 다음에 int.to_bytes(int, length, byteorder)
함수를 통해 변환된 2진수를 big endian 기반의 byte로 변경합니다.
이 때 (bit_length+7)//8
를 해주어야 8bit=1byte 조건을 만족할 수 있기 때문입니다.
그 다음 byte를 string으로 변환하기 위해 byte.decode(type)
함수를 수행한 것입니다.
즉, utf-8 형식으로 byte를 string으로 변환해서 한 글자씩 passwd에 저장합니다.