Thread Problem mit PHP und Perl (berechnung) (3 answers)
Opened by thePerlHelper at 2004-07-05 13:59

thePerlHelper
 2004-07-05 13:59
#83873 #83873
User since
2004-07-05
2 Artikel
BenutzerIn
[default_avatar]
Warum ist da das Ergebnis unterschiedlich?

PHP-Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$d = "4653896912";
$b = "13";
$z = hexdec(80000000);
print "1: $z\n";
if($z & $d){
$d = ($d>>1);
$d &= (~$z);
$d |= 0x40000000;
$d = ($d>>($b-1));
}else{
$d = ($d>>$b);
}
print "2: $d\n";
?>


Perl-Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

$d = "4653896912";
$b = "13";
$z = hex(80000000);
print "1: $z\n";
if($z & $d){
$d = ($d>>1);
$d &= (~$z);
$d |= 0x40000000;
$d = ($d>>($b-1));
}else{
$d = ($d>>$b);
}
print "2: $d\n";
exit;


Ergebnis:
bei PHP: 1: 2147483648 2: 262143 (korrekt)
bei Perl: 1: 2147483648 2: 524287 (falsch)

Ich hoffe jemand sieht den Fehler oder hat eine Idee woran es liegt.

Laut "Programmieren mit PHP" und "Programmieren mit Perl" sollte der Quellcode haargenau dasselbe machen. :(
Beachtet das & und && ein unterschied ist !!

View full thread Problem mit PHP und Perl (berechnung)