• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php计算一个字符串的32位CRC的函数crc32()

php 搞代码 3年前 (2022-01-22) 18次浏览 已收录 0个评论

实例

输出 crc32() 的结果:

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

定义和用法

crc32() 函数计算一个字符串的 32 位 CRC(循环冗余校验)。

该函数可用于验证数据的完整性。

提示:为确保您能从 crc32() 函数中取得正确的字符串表示,您必须使用 printf() 或 sprintf() 函数的 %u 格式符。如果未使用 %u 格式符,结果可能会显示为不正确的数字或者负数。

语法

crc32(string)

参数 描述

string 必需。规定要计算的字符串。

技术细节

返回值: 以整数形式返回 string 的 32 位循环冗余校验码多项式。

PHP 版本: 4.0.1+

实例 1

在本实例中,我们将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是相同的):

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

上面的代码将输出:

Without %u: 461707669With %u: 461707669

实例 2

在本实例中,我们将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是不相同的):

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

上面的代码将输出:

Without %u: -1959132156With %u: 2335835140

crc32返回的结果在32位机上会产生溢出,所以结果可能为负数。而在64位机上不会溢出,所以总是正值。

CRC算法是按字长位数bit进行计算的。

crc32函数会按照php中的两个常量参考计算 PHP_INT_SIZE,PHP_INT_MAX
这两个常量的定义:
整型数的字长和平台有关,尽管通常最大值是大约二十亿(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
输出下64位中PHP_INT_SIZE:8,PHP_INT_MAX:9223本文来源gao@daima#com搞(%代@#码@网&搞gaodaima代码372036854775807

以上就是php计算一个字符串的32位CRC的函数crc32() 的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php计算一个字符串的32位CRC的函数crc32()

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址