> 리크스크립트
BigInteger는 2.48 업데이트에서 추가된 LeekScript의 타입입니다. 기존 타입들과 호환되는 새로운 원시 타입으로, 특히 비트맵의 생성과 최적화를 쉽게 하는 데 쓰입니다.
BigInteger는 Integer와 거의 똑같이 동작하지만 훨씬 더 커질 수 있는 정수입니다. 일반 Integer는 64비트(263-1)로 제한되지만, BigInteger는 최대 1 048 576비트(220), 즉 10진수로 약 315 000자리까지 담을 수 있습니다. 이 한도를 넘으면 계산은 OUT_OF_MEMORY 오류로 실패합니다.
참고: 이 타입은 기존 타입을 모든 곳에서 대체하기 위한 것이 아닙니다(연산 비용이 더 크고 메모리를 더 많이 사용하기 때문입니다). 사악한 호박의 수수께끼를 푸는 데는 쓸모가 없습니다.
숫자를 BigInteger로 지정하려면 문자 L을 사용합니다. 리터럴을 더 읽기 쉽게 하기 위해 구분자 _도 허용됩니다.
var a = 1L var b = 0b111L big_integer c = 5 big_integer d = -3L var e = 1_000_000L
BigInteger() 생성자는 값이 0인 BigInteger를 만들고, instanceof 연산자로 값의 타입을 검사할 수 있습니다.
var x = BigInteger() debug(x instanceof BigInteger) // true
주의: 큰 숫자가 자동으로 감지되지는 않습니다. L 접미사가 없으면 Integer에 담기에 너무 큰 리터럴은 (정밀도를 잃고) Real이 됩니다. 오직 L 접미사나 big_integer 타입만이 BigInteger를 만듭니다.
var a = 123445321324234567895431235648945674894561564523489756489 // Real : 1.2344532132423457E56 var b = 1 >> 연산자는 >>처럼 동작합니다(산술 시프트: 부호 유지). / 연산자는 다른 숫자에서와 같이 동작하여 Real을 반환합니다(15L / 4L은 3.75). 정수 나눗셈은 \만 수행합니다(15L \ 4L은 3`). BigInteger가 포함된 연산의 결과는 대부분 BigInteger 타입입니다.
var a = 5.0 + 5L // BigInteger var b = 123456789123456789L % 234567 // BigInteger
연산과 메모리 비용은 피연산자의 크기에 비례하며, , \, %, *의 경우 두 피연산자 크기의 곱에 비례합니다.
var a = 2L * 200_000 // 약 1 221 000 연산 : 결과가 200 001비트임 var b = 2L * 200_000_000 // 거의 비용이 들지 않음... 왜냐하면 실패하기 때문 : 결과가 1 048 576비트 한도를 넘음 (OUT_OF_MEMORY)
매우 큰 숫자는 계산을 줄이고 화면이 넘치는 것을 막기 위해 잘려서 표시됩니다(binString과 hexString 함수는 조정된 비용으로 전체를 표시합니다).
debug(1L >>, >>`보다 연산 비용이 적기 때문입니다.
bitCount(0b1101L)은 3 ;trailingZeros(24L)은 3 ;signum(-42L)은 -1.Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.