[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] 32 bit integers?
From: |
Kon Lovett |
Subject: |
Re: [Chicken-users] 32 bit integers? |
Date: |
Tue, 22 May 2007 13:56:56 -0700 |
On May 22, 2007, at 12:33 PM, Dan Muresan wrote:
<snip>
Actually, I haven't found the 31-bit format documented anywhere
(maybe I missed it). I thought that at least normal C int's would
always fit in a fixnum. It was an unpleasant surprise to see an
expression like (logior flags ...) fail, when "flags" was promoted
to a flonum.
If you use one of integer unsigned-integer integer32 unsigned-
integer32 integer64 long unsigned-long as a foreign parameter/
return type Chicken will automatically convert a flonum integer to/
from the native type.
Yes, but flonum's can't be used in some contexts:
* bit ops
* modulo-2^32 arithmetic (i.e. C-like 32-bit wraparound arithmetic)
I don't see a way to hack these using flonums. Bignums would solve
the problem but they're slow.
The bitwise-* procedures & arithmetic-shift are supposed to work w/
fixnums & integer flonums. The magnitude of a flonum is converted to
a C unsigned int (on 32 bit machines, u_int64_t otherwise), operated
upon, then the result is returned as a fixnum or flonum, depending on
the precision of the operation result.
The modulo-2^32 is a problem though.
Sorry,
Kon
<snip>
- [Chicken-users] 32 bit integers?, Dan Muresan, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, Kon Lovett, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, Dan Muresan, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, Kon Lovett, 2007/05/22
- Re: [Chicken-users] 32 bit integers?,
Kon Lovett <=
- Re: [Chicken-users] 32 bit integers?, Dan Muresan, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, John Cowan, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, Kon Lovett, 2007/05/22
- Re: [Chicken-users] 32 bit integers?, Dan Muresan, 2007/05/22
- Message not available
- Re: [Chicken-users] 32 bit integers?, Kon Lovett, 2007/05/23