루비 크기 함수가 다음과 같은 출력을 반환하는 이유는 무엇입니까?루비 픽스 넘 클래스의 크기 함수
1000000.size # => 8
99999999999999999999.size # => 9
루비 크기 함수가 다음과 같은 출력을 반환하는 이유는 무엇입니까?루비 픽스 넘 클래스의 크기 함수
1000000.size # => 8
99999999999999999999.size # => 9
루비 내부 기억 정수의 두 가지 구조를 사용 - Fixnum
및 Bignum
. 첫 번째 것은 더 작은 수에 사용되며 호스트 아키텍처에서 긴 정수로 직접 매핑됩니다. 더 빠르고 크기가 일정하지만 저장할 수있는 양이 제한되어 있습니다. 후자는 임의로 큰 숫자를 저장하는 데 사용되며 그 크기는 숫자의 크기에 따라 다릅니다.
1000000.class # => Fixnum
99999999999999999999.class # => Bignum
내부적으로 변환이 수행됩니다. 실제로 루비 2.4.0에서는 클래스가 하나만 존재합니다 (Integer
).
크기 함수로 수행되는 동작을 알 수 있습니까? –
@Vivakkumar는 기본적으로 얼마나 많은 메모리 (바이트 단위로)가 번호를 저장하는 데 사용되는지 말합니다. – ndn
비트 메모리 표현을 반환합니까? –
'size' 메쏘드의 어떤 부분을 당신이 이해할 수 없다고 정확히 지적한다면, 루비 작가들은 엄청나게 도움이 될 것입니다. 그래서 그들은 미래의 독자들을 위해 그것을 향상시킬 수 있습니다. –