Re: [PHP] LONGINT... ? to be or not to be?...

2001-08-28 Thread Sheridan Saint-Michel

A couple of points here...  First, 0 is obviously wrong for
3221225472  1073741824
But I don't know how you got 2147483648 either.
I get 1073741824 as 
3221225472 = 1100
1073741824 = 0100

1100  
0100 =
0100

right?

Anyways, to your question  =P

First, if you check here: 
http://www.php.net/manual/en/language.types.integer.php

you will see that int's in PHP are always signed and that if
they exceed the max size for an int they are converted to a 
float.

Try running this on your server

?php
$x = 3221225472;
$y = 1073741824;
echo x = ;
var_dump($x);
echo BR;
echo y = ;
var_dump($y);
?

I would be willing to bet that $x is a float and $y is an int, so
the bitwise operator can't compare them.  The only 
workaround I can offer you is this

?php
$x = 3221225472;
$y = 1073741824;
$x = decbin($x);
$y = decbin($y);
$bitand = bindec($x  $y);
echo Bitwise and gives $bitand;
?

It's a bit kludgy but it forces both $x and $y to be compared
as binary numbers, which is what you want  =)

Sheridan Saint-Michel
Website Administrator
FoxJet, an ITW Company
www.foxjet.com


- Original Message - 
From: Alexey Prohorenko [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, August 28, 2001 1:47 PM
Subject: [PHP] LONGINT... ? to be or not to be?...


 Hello,
 
 I have one question. How can PHP work with longint (in C we call
 them unsigned long) variables?
 F.e., I want to do next thing:
 
 65536  4096 = 0 (this is right)
 65536  65536 = 65536 (again, everything is okay)
 196608  65536 = 65536 (perfect, it works great)
 
 but,
 
 3221225472  1073741824 = 0 (this is wrong, right answer isn't 0
  but 2147483648)
 
 So, can anybody help me with this? Any suggestions? 
 
 Thanks, anyway. Looking forward your answers.
 Will check my mailbox every 5 minutes. :-)
 
 -- 
 green
 [http://www.extrasy.net] 
 [http://www.unix-how-to.net]
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP] LONGINT... ? to be or not to be?...

2001-08-28 Thread Papp Gyozo

Hello,

you should check the latest version of the manual:
http://www.php.net/manual/en/language.types.integer.php

more precisely and specifically the integer overflow section.

I think, you should use the arbitrary precision integer extension.
http://www.php.net/manual/en/ref.gmp.php

hth

- Original Message -
From: Alexey Prohorenko [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, August 28, 2001 8:47 PM
Subject: [PHP] LONGINT... ? to be or not to be?...


 Hello,

 I have one question. How can PHP work with longint (in C we call
 them unsigned long) variables?
 F.e., I want to do next thing:

 65536  4096 = 0 (this is right)
 65536  65536 = 65536 (again, everything is okay)
 196608  65536 = 65536 (perfect, it works great)

 but,

 3221225472  1073741824 = 0 (this is wrong, right answer isn't 0
  but 2147483648)

 So, can anybody help me with this? Any suggestions?

 Thanks, anyway. Looking forward your answers.
 Will check my mailbox every 5 minutes. :-)

 --
 green
 [http://www.extrasy.net]
 [http://www.unix-how-to.net]

 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]