sjiwon   2년 전

왜 틀린지 모르겠네여 반례도 다 맞는데

hsykys0728   2년 전

안녕하세요. 

9행의 Long.parseLong(n, 2)은, 문자열 n을 Long으로 변환 후 2진법으로 바꿉니다.

문제에서 1,000,000 자리를 넘지 않는 이진수를 입력 받습니다.

Long은 8바이트, 64비트로 이루어져 있습니다. 

부호로 사용하는 1비트를 제외하면 63비트까지 수의 표현이 가능합니다.

따라서 Long이 가질 수 있는 최대값 2진수로 1111...111(1이 63개) 로 구성된 수 입니다.  

입력의 문자열 2진수 길이가 63을 넘는다면 Long으로 변환할 수 없어 위의 Exception이 발생했다고 생각됩니다.


수의 표현 방법이 궁금하시면 '자바 자료형', '2의 보수' 키워드로 검색 해보시길 바랍니다.

도움되셨으면 좋겠습니다. 

댓글을 작성하려면 로그인해야 합니다.