本文整理汇总了C++中BigInteger::IsNull方法的典型用法代码示例。如果您正苦于以下问题:C++ BigInteger::IsNull方法的具体用法?C++ BigInteger::IsNull怎么用?C++ BigInteger::IsNull使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BigInteger
的用法示例。
在下文中一共展示了BigInteger::IsNull方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tmp
BigInteger operator/ (const BigInteger& a, const BigInteger& b)
{
BigInteger remainder;
char* result = new char[1];
result[0] = '\0';
// need positive divisor
BigInteger bAbs = b.Abs();
int pos = a.Cardinality() - 1;
while (pos >= 0)
{
// append next digit from dividend to temporary divisor
int len = (remainder.IsNull()) ? 1 : remainder.Cardinality() + 1;
int* digits = new int[len];
// copy old digits
for (int k = 0; k < len - 1; k++)
digits[k + 1] = remainder.m_digits[k];
// fetch digit from dividend
digits[0] = a.m_digits[pos];
remainder = BigInteger(true, digits, len); // TODO: Ob len hier stimmt, ist OFFEN
// divide current dividend with divisor
int n = 0;
while (bAbs <= remainder)
{
n++;
remainder -= bAbs;
}
// append digit to result string
int slen = strlen(result);
char* tmp = new char[slen + 2];
strcpy_s (tmp, slen + 2, result);
tmp[slen] = '0' + n;
tmp[slen + 1] = '\0';
delete[] result;
result = tmp;
// fetch next digit from divisor
pos--;
}
BigInteger tmp (result);
tmp.m_sign = (a.Sign() == b.Sign()) ? true : false;
tmp.RemoveLeadingZeros();
return tmp;
}