| @@ 398-404 (lines=7) @@ | ||
| 395 | function BigEndian2Int($byteword, $synchsafe=false, $signed=false) { |
|
| 396 | $intvalue = 0; |
|
| 397 | $bytewordlen = strlen($byteword); |
|
| 398 | for ($i = 0; $i < $bytewordlen; $i++) { |
|
| 399 | if ($synchsafe) { // disregard MSB, effectively 7-bit bytes |
|
| 400 | $intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7); |
|
| 401 | } else { |
|
| 402 | $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i)); |
|
| 403 | } |
|
| 404 | } |
|
| 405 | if ($signed && !$synchsafe) { |
|
| 406 | // synchsafe ints are not allowed to be signed |
|
| 407 | switch ($bytewordlen) { |
|
| @@ 343-350 (lines=8) @@ | ||
| 340 | if ($bytewordlen == 0) { |
|
| 341 | return false; |
|
| 342 | } |
|
| 343 | for ($i = 0; $i < $bytewordlen; $i++) { |
|
| 344 | if ($synchsafe) { // disregard MSB, effectively 7-bit bytes |
|
| 345 | //$intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7); // faster, but runs into problems past 2^31 on 32-bit systems |
|
| 346 | $intvalue += (ord($byteword{$i}) & 0x7F) * pow(2, ($bytewordlen - 1 - $i) * 7); |
|
| 347 | } else { |
|
| 348 | $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i)); |
|
| 349 | } |
|
| 350 | } |
|
| 351 | if ($signed && !$synchsafe) { |
|
| 352 | // synchsafe ints are not allowed to be signed |
|
| 353 | if ($bytewordlen <= PHP_INT_SIZE) { |
|