64 bit C question

Jerry Feldman gaf at blu.org
Wed Feb 18 07:43:20 EST 2009


On 02/17/2009 05:30 PM, bruce.labitt at autoliv.com wrote:
> 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...
>   
In C++:
#include <iostream>

#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

    std::cout << "long int N = " << std::hex << N << "\n"
                  << "long long NN = " << std::hex << NN << std::endl;
    return 0;
}

In the above, any leading zeroes will be suppressed.

Another note that <cmath> is C++, and <math.h> is C.
I don't recall off the top of my head if the second std::hex is needed. 
Some manipulators work only for the next conversion, some work until 
changed.

-- 
Jerry Feldman <gaf at blu.org>
Boston Linux and Unix
PGP key id: 537C5846
PGP Key fingerprint: 3D1B 8377 A3C0 A5F2 ECBB  CA3B 4607 4319 537C 5846


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 251 bytes
Desc: OpenPGP digital signature
Url : http://mail.gnhlug.org/mailman/private/gnhlug-discuss/attachments/20090218/04f9cb3a/attachment-0001.bin 


More information about the gnhlug-discuss mailing list