연산속도를 높이려고 비트연산자를 썼습니다.(17497은 10^13보다 작은 수를 2진수로 바꿀 수만 있으면 금방 풀립니다. 애초에 메모리에서 2진수 형태로 저장하니 이걸 10진수 형태가 아니라 2진수 형태 그대로 읽을 수 있는 방법이 궁금힙니다.) 이 문제에서 나온 최대값인 10^13을 바꿔보았습니다.
저는 longlongint의 64bit를 모두 체크하고 싶었는데, 실제로 제 코드에서는 getAbit함수가 32번째 bit까지 밖에 읽지 않습니다.
그래서 longint범위에서는 제대로 돌아갈 것 같긴 한데, 이 문제에서 10^13은 2^45정도 되서 longlongint로 바꿔야합니다.
질문1. 왜 longlongint에서는 안되나요? 질문2. 나머지 32비트도 읽으려면 어떻게 해야하나요?
yjkim9591 1년 전
연산속도를 높이려고 비트연산자를 썼습니다.(17497은 10^13보다 작은 수를 2진수로 바꿀 수만 있으면 금방 풀립니다.
애초에 메모리에서 2진수 형태로 저장하니 이걸 10진수 형태가 아니라 2진수 형태 그대로 읽을 수 있는 방법이 궁금힙니다.)
이 문제에서 나온 최대값인 10^13을 바꿔보았습니다.
저는 longlongint의 64bit를 모두 체크하고 싶었는데,
실제로 제 코드에서는 getAbit함수가 32번째 bit까지 밖에 읽지 않습니다.
그래서 longint범위에서는 제대로 돌아갈 것 같긴 한데, 이 문제에서 10^13은 2^45정도 되서 longlongint로 바꿔야합니다.
질문1. 왜 longlongint에서는 안되나요?
질문2. 나머지 32비트도 읽으려면 어떻게 해야하나요?