Discussion:
Conversion.
(too old to reply)
Unknown
2012-11-27 15:34:56 UTC
Permalink
Hello!

How can a signed 64 bits QUAD integer in PB be converted to a unsigned 64
bit integer?
Thanks!
--
Auric__
2012-11-27 19:40:39 UTC
Permalink
Post by Unknown
How can a signed 64 bits QUAD integer in PB be converted to a unsigned 64
bit integer?
PowerBASIC doesn't have an unsigned 64-bit data type. You can fake it using
EXT variables:

f80## = CEXT(i64&&)

...but note that due to how QUADs are implemented, and the limitations of
floating-point types, very large values lose precision. (Read the help file's
QUAD and EXT entries.) If that's not acceptable, you'll need to roll your own
data type. Google for something like "implement unsigned 64-bit integer
basic".

If you absolutely *must* have an unsigned 64-bit integer, and don't want to
roll your own, you'll need to use a different language. (For example,
FreeBASIC has ULONGINT, and QB64 (apparently) has _UNSIGNED _INTEGER64.)
--
It takes 24 hours to recover from a fake illness.
Wildman
2012-11-27 20:37:57 UTC
Permalink
Post by Auric__
Post by Unknown
How can a signed 64 bits QUAD integer in PB be converted to a unsigned
64 bit integer?
PowerBASIC doesn't have an unsigned 64-bit data type. You can fake it
f80## = CEXT(i64&&)
...but note that due to how QUADs are implemented, and the limitations
of floating-point types, very large values lose precision. (Read the
help file's QUAD and EXT entries.) If that's not acceptable, you'll need
to roll your own data type. Google for something like "implement
unsigned 64-bit integer basic".
If you absolutely *must* have an unsigned 64-bit integer, and don't want
to roll your own, you'll need to use a different language. (For example,
FreeBASIC has ULONGINT, and QB64 (apparently) has _UNSIGNED _INTEGER64.)
There is a discussion on using the PB EXT data type for unsigned
64-bit numbers with some code examples here:
http://www.powerbasic.com/support/pbforums/showthread.php?t=51350
And here:
http://www.powerbasic.com/support/pbforums/showthread.php?p=387026

Just so happens that I had been researching the EXT data type for
the same purpose so I had the links bookmarked already.

Loading...