64 bit C question

bruce.labitt at autoliv.com bruce.labitt at autoliv.com
Tue Feb 17 17:30:00 EST 2009


Is there some way to to compile a C or C++ program that will output a 
64bit hex value correctly?  This is what I have so far...

#include<cmath>
int main()
{
  long int N;
  long long NN;
 
  N  = (long int)  pow(2.0, 31.0);              // 2**31 = 
2*1024*1024*1024 = 2G
  NN = (long long) pow(2.0, 32.0);              // 2**32 = 4G == dreaded 
32 bit boundary

  printf("long int   N = %16x\n", N);   // x800000000  correct
  printf("long long NN = %16x\n", NN);  // prints 0 which is incorrect
  printf("long long NN = %li\n",  NN);  // prints 4294976296, which is 
correct 

}

I need to write a hex string to file so my python program on a different 
node can read it.
I use fprintf, but am apparently getting the same results...

Any suggestion to fix this?  The compile command I am using is really 
simple:

g++ -m64 -D_FILE_OFFSET_BITS=64 -I/usr/local/include -L/usr/local/lib 
-omytestfile mytestfile.cpp

This program is on a 64 bit YDL system.  It is probably a classic - but I 
am not sure how to proceed from here...

TIA,
-Bruce



******************************
Neither the footer nor anything else in this E-mail is intended to or constitutes an <br>electronic signature and/or legally binding agreement in the absence of an <br>express statement or Autoliv policy and/or procedure to the contrary.<br>This E-mail and any attachments hereto are Autoliv property and may contain legally <br>privileged, confidential and/or proprietary information.<br>The recipient of this E-mail is prohibited from distributing, copying, forwarding or in any way <br>disseminating any material contained within this E-mail without prior written <br>permission from the author. If you receive this E-mail in error, please <br>immediately notify the author and delete this E-mail.  Autoliv disclaims all <br>responsibility and liability for the consequences of any person who fails to <br>abide by the terms herein. <br>
******************************



More information about the gnhlug-discuss mailing list