풀이 코드 내 질문

다른 부분은 이해를 했는데 마지막에 작성된

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에 저장합니다.

2023.02.19. 20:18
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기