Posted by Chung Leong on 05/31/06 18:13
Skeleton wrote:
> So what should I do at this point? I need to make XOR operations with
> such big(small) numbers.
> Chung Leong wrote:
> > Skeleton wrote:
> > > My PHP 5.1.2 is on Windows. So the problem is about the Operating
> > > Systems.
> > >
> > > David Haynes wrote:
> > > > Be careful of your base assumptions. php 5.1.2 on Linux produces
> > > > -2147483647 as well.
> > > >
> > > > -david-
> >
> > No, it's difference is in the compiler. The operation you describe
> > causes a double-to-long-integer conversion overflow. Gcc probably
> > throws in a check which sets the value to the integer boundary whereas
> > MS Visual C just lets it wrap around.
What exactly are you trying to do? One possible solution is to perform
the operation on strings instead:
<?
$a = "\x01\x02\x03";
$b = "\xFF\x02\x03";
$c = $a ^ $b;
for($i = 0; $i < strlen($c); $i++) {
printf("%x, ", ord($c[$i]));
}
?>
[Back to original message]
|