note 111699 added to function.crc32

From: Date: Mon, 18 Mar 2013 13:16:35 +0000
Subject: note 111699 added to function.crc32
Groups: php.notes 
Request: Send a blank email to php-notes+get-194109@lists.php.net to get a copy of this message
Implementation crc64() in php 64bit <?php /** * @return array */ function crc64Table() { $crc64tab = []; // ECMA polynomial $poly64rev = (0xC96C5795 << 32) | 0xD7870F42; // ISO polynomial // $poly64rev = (0xD8 << 56); for ($i = 0; $i < 256; $i++) { for ($part = $i, $bit = 0; $bit < 8; $bit++) { if ($part & 1) { $part = (($part >> 1) & ~(0x8 << 60)) ^ $poly64rev; } else { $part = ($part >> 1) & ~(0x8 << 60); } } $crc64tab[$i] = $part; } return $crc64tab; } /** * @param string $string * @param string $format * @return mixed * * Formats: * crc64('php'); // afe4e823e7cef190 * crc64('php', '0x%x'); // 0xafe4e823e7cef190 * crc64('php', '0x%X'); // 0xAFE4E823E7CEF190 * crc64('php', '%d'); // -5772233581471534704 signed int * crc64('php', '%u'); // 12674510492238016912 unsigned int */ function crc64($string, $format = '%x') { static $crc64tab; if ($crc64tab === null) { $crc64tab = crc64Table(); } $crc = 0; for ($i = 0; $i < strlen($string); $i++) { $crc = $crc64tab[($crc ^ ord($string[$i])) & 0xff] ^ (($crc >> 8) & ~(0xff << 56)); } return sprintf($format, $crc); } ---- Server IP: 69.147.83.199 Probable Submitter: 109.167.210.157 ---- Manual Page -- http://php.net/manual/en/function.crc32.php Edit -- https://master.php.net/note/edit/111699 Del: integrated -- https://master.php.net/note/delete/111699/integrated Del: useless -- https://master.php.net/note/delete/111699/useless Del: bad code -- https://master.php.net/note/delete/111699/bad+code Del: spam -- https://master.php.net/note/delete/111699/spam Del: non-english -- https://master.php.net/note/delete/111699/non-english Del: in docs -- https://master.php.net/note/delete/111699/in+docs Del: other reasons-- https://master.php.net/note/delete/111699 Reject -- https://master.php.net/note/reject/111699 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#194109) next »