Немного не понял почему у вас число 2 147 483 648 - {0, 1, 0, 0}, а не 2 147 483 648 - {2 147 483 647, 1, 0, 0}
carry += c.bits[i + j] + (long long)a.bits[i] * b.bits[j];
{{98656,8,0,0}}, так как 4444 * 222 = 986 568
from decimal import *
import math
getcontext().prec = 400
a = Decimal('2908337335267882719112393218356660694028796020413339889344001');
b = Decimal('199577786472534580238277135938482051708016612125502091367466650497922405808640000')
c = Decimal('199577786472534580238277135938482051708016612125502091367466856365842937955328680')
print(pow(pow(a,3) + pow(b,3) - 1, Decimal(1)/Decimal(3)) - c)
print(pow(a,3)+pow(b,3)-pow(c,3))
calculatePoint(mainCircleDiameter / 2, m_AngleNeedle); // вызов функции та что ниже
QPointF Needle::calculatePoint(const double& radius, const double& angle, const double& offset)
{
QPointF pointF;
pointF.setX(m_MainCircleDiameter.value() / 2 + radius * qCos((M_PI * angle) / 180.0) - offset*qSin((M_PI * angle) / 180.0));
pointF.setY(m_MainCircleDiameter.value() / 2 + radius * qSin((M_PI * angle) / 180.0) + offset*qCos((M_PI * angle) / 180.0));
return pointF;
}
Это как раз позиционная же система счисления. Только основание тут 2^32=4294967296. Надо работать с Long long.