More info needed about [_UNSIGNED] _INTEGER64
#1
I have a few questions about the use of _INTEGER64 and _UNSIGNED _INTEGER64.

According to the WIKI info, _UNSIGNED _INTEGER64 values can range from 0 to 18446744073709551615 on 64 bit computers and the 32 bit values are limited to the _INTEGER64 values of -9223372036854775808 to 9223372036854775807.

However, the WIKI page for _UNSIGNED doesn't mention any difference between 32 bit or 64 bit use.

Question : 
Has the problem of not being able to use the higher values still apply to 32 bit systems?


The reason I ask is that I am currently running QB64pe 32bit on a Windows Vista Home Premium 32 bit Operating System and I'm able to get the higher values for an _UNSIGNED _INTEGER64 to work without any problems.

PLEASE NOTE :  This all runs on a computer that IS CAPABLE of running a 64 bit OS installation.
>> Processor :  AMD Athlon(tm) 64X2 Dual Core Processor 5000+  2.60 Ghz


More questions: 
So, does this mean that ONLY the computer needs to be capable of 64 bit?

When QB64 does _UNSIGNED _INTEGER64 math, does it use the processor's internal math co-processor?

If I were using QB64pe 32 bit on a 32 bit Operating System which was running on a 32 bit processor (not capable of running a 64 bit OS) would I still be able to get the higher values for an _UNSIGNED _INTEGER64 variable?


Thanks in advance for any more detailed info that can be provided.
Reply
#2
Hi Stuart,

I've clarified the _INTEGER64 Wiki page, it was indeed misleading.

Of course, you can safely use (_UNSIGNED) _INTERGER64 on both, 32 bit or 64 bit systems. The values are the same for both, only the use of _UNSIGNED determines if you can use the higher positive values as with every other integer variable type.

As for your question about the usage of the processor's internal math co-processor, I could imagine the underlying C/C++ compiler will be smart enough to do that where it is applicable and makes sense.
Reply
#3
(10-15-2022, 09:14 PM)RhoSigma Wrote: Hi Stuart,

I've clarified the _INTEGER64 Wiki page, it was indeed misleading.

Of course, you can safely use (_UNSIGNED) _INTERGER64 on both, 32 bit or 64 bit systems. The values are the same for both, only the use of _UNSIGNED determines if you can use the higher positive values as with every other integer variable type.

As for your question about the usage of the processor's internal math co-processor, I could imagine the underlying C/C++ compiler will be smart enough to do that where it is applicable and makes sense.


Thanks for the quick reply to my questions.

I've checked the new WIKI page for "_INTEGER64" and it is a lot easier to understand now :  
https://qb64phoenix.com/qb64wiki/index.php/INTEGER64

I'm also glad to hear that _UNSIGNED works the same on 32 bit and 64 bit systems, regardless of the processor type.

Thanks again for your reply, and for all the work you put into the WIKI pages.
Reply




Users browsing this thread: 1 Guest(s)