C unsigned long long переполнение на другом в массиве
Допустим, у меня есть массив unsigned long long
Есть ли способ поставить переполнение в следующем ull
? Я хочу точное число, поэтому двойное не вариант. На данный момент это то, что у меня есть:
#include <stdio.h>
unsigned long long d[2] = {1,0}, n[2] = {0,0}; // denominator, numerator
unsigned long long nd = 1;
int main(int argc,char* argv[])
{
while(1){
if(nd+2 < nd) // next denominator greater than 2^64-1
return 0;
// n = n*nd + d
n[0] = n[0] * nd + d[0];
// n[1] += *overflow <------
n[1] = n[1] * nd + d[1];
d[0] *= nd;
// d[1] += *overflow <------
d[1] *= nd;
printf("current denominator: %llu -> 4*%llu/%llu\n", nd, n, d);
nd += 2; //increment next denominator
}
}