[php] PHP에서 int의 최대 값은 얼마입니까?

매우 큰 숫자로 작업 할 수있는 특수 라이브러리를 무시하고 PHP에 저장할 수있는 가장 큰 int 값은 무엇입니까?



답변

보내는 사람 PHP 매뉴얼 :

정수의 크기는 플랫폼에 따라 다르지만 약 20 억의 최대 값이 일반적인 값 (부호 32 비트)입니다. PHP는 부호없는 정수를 지원하지 않습니다. 정수 크기는 PHP_INT_SIZE 상수를 사용하여 결정할 수 있으며, 최대 값은 PHP 4.4.0 및 PHP 5.0.5부터 상수 PHP_INT_MAX를 사용하여 결정할 수 있습니다.

64 비트 플랫폼의 최대 값은 일반적으로 약 9E18입니다. 단, PHP 7 이전의 Windows에서는 항상 32 비트였습니다.


답변

32 비트 PHP 빌드 :

  • 정수는 -2,147,483,648 에서 2,147,483,647 (~ ± 20 억)까지 가능합니다.

64 비트 PHP 빌드 :

  • 정수는 -9,223,372,036,854,775,808 에서 9,223,372,036,854,775,807 (~ ± 9 quintillion )까지 가능합니다.

숫자는 포함됩니다.

참고 : 일부 64 비트 빌드는 한때 32 비트 정수를 사용했습니다. 특히 이전 Windows 빌드의 PHP

이 범위를 벗어난 값은이 범위 내의 정수가 아닌 값과 마찬가지로 부동 소수점 값으로 표시됩니다. 인터프리터는 계산 결과 값을 정수로 나타낼 수 없는지 여부에 따라이 부동 소수점으로의 전환이 필요한시기를 자동으로 결정합니다.

PHP는 “부호없는”정수를 지원하지 않으므로 모든 정수의 최대 값을 “부호있는”정수 범위로 제한합니다.


답변

PHP int의 크기는 플랫폼에 따라 다릅니다 .

정수의 크기는 플랫폼에 따라 다르지만 약 20 억의 최대 값이 일반적인 값 (부호 32 비트)입니다. PHP는 부호없는 정수를 지원하지 않습니다. 정수 크기는 PHP_INT_SIZE 상수를 사용하여 결정할 수 있으며, 최대 값은 PHP 4.4.0 및 PHP 5.0.5부터 상수 PHP_INT_MAX를 사용하여 결정할 수 있습니다.

PHP 6은 “longs”(64 비트 정수)를 추가합니다.


답변

(조금 늦었지만 유용 할 수 있음)

PHP_INT_MAX 및 PHP_INT_SIZE 만 신뢰 하십시오 .이 값은 아치 (32/64 비트) 및 OS에 따라 다릅니다.

다른 “추측”또는 “힌트”는 거짓 일 수 있습니다.


답변

아, 나는 그것을 발견 : 2 (32) – 1 (2,147,483,647)

http://au2.php.net/int

정수 오버플로

PHP가 정수 유형의 경계를 벗어난 숫자를 발견하면 대신 float로 해석됩니다. 또한 정수 유형의 경계를 초과하는 숫자가 생성되는 연산은 대신 부동 소수점을 반환합니다.

<?php
$large_number =  2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)


답변

OS에 따라 다르지만 매뉴얼 에 따르면 2147483647이 일반적인 값 입니다.


답변

PHP_INT_*상수는 매우 오랫동안 존재 하지만 음수에 도달 할 때까지 왼쪽으로 이동하여 프로그래밍 방식으로 동일한 MIN / MAX 값을 찾을 수 있습니다.

$x = 1;
while ($x > 0 && $x <<= 1);
echo "MIN: ", $x;
echo PHP_EOL;
echo "MAX: ", ~$x;