문제

나는 perl 초보자입니다.

Perl에서 간단히 64 비트 산술을 사용할 수 있습니까?

예를 들어

$operand1 = 0xFFFFFFFFFFFF;   # 48 bit value
$operand2 = 0xFFFFFFFFFFFF;   # 48 bit value

$Result = $operand1 * $operand2;
  • 나는 기본적으로 Perl에서 int64_t를 대체하려고합니다.
  • 변수가 서명되거나 서명되지 않은 경우 언급 할 방법이 있습니까?
도움이 되었습니까?

해결책

예, 그러나 64 비트 지원으로 Perl을 편집해야합니다.

다른 팁

보다 :

Perl에 대한 투명한 큰 지원 ...

범위 운영자를 제외한 모든 운영자 (기본 수학 운영 포함) .. 오버로드되었습니다. 정수 상수는 적절한 큰 인쇄물로 만들어집니다.

부동 소수점 상수는 정수에 잘린다. 표현의 모든 부분과 결과도 잘립니다.

같지 않은 정수,이 Pragma는 사용 가능한 메모리와 CPU 시간에 의해 크기가 제한된 정수 상수를 만듭니다 ...

예, Perl은 자동으로 큰 정수 산술을 처리합니다. 그러나 Perl은 서명 된 유형과 부호없는 유형을 구별하지 않습니다 (큰 정수 범위에 고정 된 경계가 없기 때문에 필요하지 않습니다).

그만큼 통증관 수동 페이지에는 Perl에서 지원하는 다양한 숫자 형식에 대한 자세한 정보가 있습니다.

Perl의 64 비트 산술은 하나이지만 Sprintf %d %u 및 %s로 표시되는 것은 두 번째입니다. 현재 Perl 버전은 문제없이 64bits를 지원하지만 Sprintf %D 형식은 아니고 %B도 마찬가지입니다.

use bigint 정수 오버플로없이 Perl이 임의의 크기 정수를 올바르게 처리합니다.

예를 들어 :

use bigint;
print 1 << 256;

인쇄 :

115792089237316195423570985008687907853269984665640564039457584007913129639936
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top