Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #7314
| From | "Paul" <pchristor@yahoo.co.uk> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: 64 bits values or 32 bits |
| Date | 2011-07-01 01:01 +0100 |
| Organization | Netfront http://www.netfront.net/ |
| Message-ID | <iuj2pc$1smd$1@adenine.netfront.net> (permalink) |
| References | <9087354f-58c5-480d-b34a-3543ca5bb93f@l9g2000yqk.googlegroups.com> |
"jim hyden" <netuser501@gmail.com> wrote in message
news:9087354f-58c5-480d-b34a-3543ca5bb93f@l9g2000yqk.googlegroups.com...
> Hi,
>
> For the 2 first questions (as comments in the code), the code below is
> "half- working" on a 64 bits windows 7 laptop running Windev C++. Is
> Windev running in 32 bits mode by default?
>
> Without the if statement in this loop it returns 1 or
> -4 294 967 295.
>
> In fact, it is now returning 1 for question 2 which is not what I
> expect.
>
> With the if statement, the code returns
> 2 147 483 648 for 32 loops in question 1 and question 2 when it's 33
> loops ?
>
> Something wrong with the algorithm in the code???
>
> while (var_integer > 0)
> {
> cout << "\n" << nb << "\tvar_int : " << var_integer ;
> var_integer *= 2 ;
> nb++ ;
> if (var_integer > 0)
> var_integer2 = var_integer ;
> }
>
>
> /* 1- Compute a n*2 value for 64 iterations */
> /* 2- Maximum integer variable iterations for n*2 */
> /* 3- Computer the number of iteration needed to reach the value in
> question 1 */
> int main()
> try
> {
> long double var_long_double = 1 ;
> long double var_long_double2 = 1 ;
> unsigned int var_integer = 1 ;
> unsigned int var_integer2 = 1 ;
> int i = 1 ;
> int nb = 1 ;
> // QUESTION 1
> while (i < 64)
> {
> var_long_double *= 2 ;
> i++ ;
> }
> cout << "\n1- Value for 64 iteration : " << var_long_double ;
> //QUESTION 2
> while (var_integer > 0)
> {
> cout << "\n" << nb << "\tvar_int : " << var_integer ;
> var_integer *= 2 ;
> nb++ ;
> if (var_integer > 0)
> var_integer2 = var_integer ;
> }
> cout << "\n\n2- Number as integer variable for " << nb << "
> incrementations : " << var_integer2 ;
> // QUESTION 3
> i = 1 ;
> while (var_long_double >= 0)
> {
> var_long_double /= 2 ;
> if (var_long_double >= 0)
> var_long_double2 = var_long_double ;
> else
> break ;
> i++ ;
> }
> cout << "\n3-Number of maximum iteration for i as int " << i
> <<
> "\n" ;
> cout << "\n\n" ;
> system("pause") ;
> return 0 ;
> }
>
> catch (runtime_error e)
> {
> cout << e.what() << '\n' ;
> keep_window_open("~") ;
> }
>
> catch(...)
> {
> cout << "Exiting\n" ;
> keep_window_open("~") ;
> }
Please excuse me if I am missing the point but can't you just use sizeof to
determine if your varaibles are a different size on a 64-bit implementation?
--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
64 bits values or 32 bits jim hyden <netuser501@gmail.com> - 2011-06-30 14:17 -0700 Re: 64 bits values or 32 bits Ian Collins <ian-news@hotmail.com> - 2011-07-01 09:52 +1200 Re: 64 bits values or 32 bits "Paul" <pchristor@yahoo.co.uk> - 2011-07-01 01:01 +0100 Re: 64 bits values or 32 bits SG <s.gesemann@gmail.com> - 2011-07-01 18:42 -0700
csiph-web