>  기사  >  백엔드 개발  >  문자열의 32비트 CRC를 계산하는 PHP 함수 crc32()

문자열의 32비트 CRC를 계산하는 PHP 함수 crc32()

黄舟
黄舟원래의
2017-11-02 10:24:042399검색

crc32()의 결과 출력:

<?php
$str = crc32("Hello World!");
printf("%un",$str);
?>

정의 및 사용법

crc32() 함수는 문자열의 32비트 CRC(순환 중복 검사)를 계산합니다.

이 기능은 데이터 무결성을 확인하는 데 사용할 수 있습니다.

팁: crc32() 함수에서 올바른 문자열 표현을 얻으려면 printf() 또는 sprintf() 함수의 %u 포맷터를 사용해야 합니다. %u 형식 문자를 사용하지 않으면 결과가 잘못된 숫자나 음수로 나타날 수 있습니다.

구문

crc32(string)

매개변수 설명

문자열 필수입니다. 계산할 문자열을 지정합니다. ​

기술 세부정보

반환값: ​ ​ 문자열의 32비트 순환 중복 검사 코드 다항식을 정수 형식으로 반환합니다.

PHP 버전: 4.0.1+

예제 1

이 예에서는 "%u" 형식 문자가 있거나 없는 crc32()의 결과를 출력합니다(결과는 동일합니다).

<?php
$str = crc32("Hello world!");
echo &#39;Without %u: &#39;.$str."<br>";
echo &#39;With %u: &#39;;
printf("%u",$str);
?>

위 코드는 다음을 출력합니다:

Without %u: 461707669
With %u: 461707669

예제 2

이 예에서는 "%u" 형식 문자가 있거나 없는 crc32()의 결과를 출력합니다(결과는 동일하지 않음):

<?php
$str = crc32("Hello world.");
echo &#39;Without %u: &#39;.$str."<br>";
echo &#39;With %u: &#39;;
printf("%u",$str);
?>

위 코드는 다음과 같이 출력됩니다.

Without %u: -1959132156
With %u: 2335835140

crc32에서 반환된 결과는 32비트 시스템에서 오버플로되므로 결과는 음수가 될 수 있습니다. 64비트 시스템에서는 오버플로가 없으므로 항상 양수입니다.

CRC 알고리즘은 단어 길이의 비트 수를 기준으로 계산됩니다.

crc32 함수는 php의 두 상수 참조에 따라 PHP_INT_SIZE 및 PHP_INT_MAX를 계산합니다. 이 두 상수의 정의:
정수의 단어 길이는 플랫폼에 따라 다르지만 최대값은 일반적으로 약 20억(32비트)입니다. ) 기호). PHP는 부호 없는 정수를 지원하지 않습니다.
Integer 값의 단어 길이는 PHP_INT_SIZE 상수로 표현할 수 있습니다. PHP 4.4.0, PHP 5.0.5부터 최대값은 PHP_INT_MAX 상수로 표현할 수 있습니다. 32비트 출력에서 ​​출력 PHP_INT_SIZE: 4, PHP_INT_MAX: 2147483647

위 내용은 문자열의 32비트 CRC를 계산하는 PHP 함수 crc32()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.