2013-02-10 2 views

답변

6

우리가 2의 보수를하고 8 비트가 1 바이트라고 가정하면; 최소한 (57,885,161 + 7)/8 바이트가 필요합니다.

설명 할 수있는 간단한 방법이 필요한 경우 2^32 - 1은 32 비트 정수가 나타내는 최대 수이고 32는 2로 나눌 수있는 밑수입니다. 8, 바이트 당 우리의 가정 된 비트 수. 2^32 - 1은 4 바이트가됩니다.

가정의 정의를 확장하면 번호가 2^57885161로 8로 나눌 수 없지만 7을 더합니다. 따라서 2^57885168이 남았고, 8로 나누면 결과 7235646 바이트가됩니다.

이것은 GregS의 의견에 대한 설명 일뿐입니다.

3

답변은 사용자가 할 일에 따라 크게 달라질 수 있습니다. 메르 센 소수 (Mersenne primes) 만 독점적으로 작동하는 프로그램을 작성하는 경우, 메르 센 소수 (Mersenne primix)를 나타내는 것으로 이해하면 아마도 4 바이트 만 저장하면됩니다.

일반적인 압축되지 않은 "큰 정수"로 저장하려면 약 7235646 바이트 (ceildiv (57885161, 8))가 필요합니다. 일부 형식은 다른 형식보다 효율적입니다. 예를 들어, 파이썬 long 형식은 7718048 바이트를 사용하여 형식 오버 헤드 (파이썬이 30 비트 숫자를 사용함)로 인해이 번호를 내 컴퓨터()에 저장합니다.

+0

자, OP가 형식을 지정하지 않았습니다! 그래서 나는 그를 위해 좋은 압축 형식을 골랐다. – nneonneo

+2

알겠습니다.하지만 의견을 말하십시오. –

+0

@GregS 댓글은 답이없는 답장입니다. 이 회신은 답변이므로 이상적으로 답변으로 게시해야합니다. –

관련 문제