ints only go to 32 bits, longs to 64bits... so.. what do you do when you are working with a much larger number?
Also, how easy would it be to switch between the binary representation and the hex representation?
ints only go to 32 bits, longs to 64bits... so.. what do you do when you are working with a much larger number?
Also, how easy would it be to switch between the binary representation and the hex representation?
Use an array. For example:
// Declare a structure containing an array of 4 64-bit integers
struct uint256_t
{
uint64_t bits[4];
};
// Then, to convert to hex:
uint256_t x;
char hexstring[65]; // needs to be at least 64 hex digits + 1 for the null terminator
sprintf(hexstring, "%016llx%016llx%016llx%016llx", x.bits[0], x.bits[1], x.bits[2], x.bits[3]);
ints only go to 32 bits, longs to 64bits... so.. what do you do when you are working with a much larger number?
You use large number libraries.
Also, how easy would it be to switch between the binary representation and the hex representation?
I don't understand the question. A number's a number's a number. Are you asking how to print a number in an certain base? You can format output when using streams like so:
int x = 100;
cout << x << endl; // print decimal value
cout << oct << x << endl; // print octal value
cout << hex << x << endl; // print hexadecimal value
100
0144
0x64