From: "Rob McCrea" Newsgroups: comp.os.msdos.djgpp Subject: Lack of overflow problem Lines: 39 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.3825.400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.3825.400 Message-ID: Date: Wed, 29 Dec 1999 17:20:26 -0500 NNTP-Posting-Host: 208.22.24.114 X-Trace: newsfeed.slurp.net 946507977 208.22.24.114 (Wed, 29 Dec 1999 16:52:57 CDT) NNTP-Posting-Date: Wed, 29 Dec 1999 16:52:57 CDT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com My expression won't recognize the overflow... while ((s+1) > s) s++; is an infinite loop. What's up with that? Apparently the condition is being evaluted as (1>0). That's not right is it? I'm compiling with gpp -Wall testsize.cpp -o testsize.exe. Please, can someone explain why its not acting like a computer? On the subject that led me on the above side-trip, I need a library that will allow me to use much larger (non-float and unsigned) integers. unsigned long long fails at 2^64 of course. I will want to calculate up to 2^10000000 for starters, but anything that will allow greater than 2^64 is an improvement (I'm hoping to find a type that would only be limited by the amount of freespace on your hardrive). Any base will work. I need multiplication (or exponential), division (or modulo), and subtraction. If you know of one, please reply. Rob. ////testsize.cpp//// #include int main() { short s=0; while ((s+1) > s) { s++; cout << s << endl; } cout << "max: " << s << endl; return 0; } ////end source////