Non-decimal radices/Convert: Difference between revisions

Line 170:
 
=={{header|C++}}==
<lang cpp>#include <limitsstring>
#include <stringcstdlib>
#include <algorithm>
#include <cassert>
 
Line 178 ⟶ 179:
std::string to_base(unsigned long num, int base)
{
int const max_size = std::numeric_limits<char>::digits * sizeof(unsigned long);
char s[max_size + 1];
char* pos = s + max_size;
*pos = '\0';
if (num == 0)
return pos"0";
{
*--pos = '0';
std::string result;
while (num > 0) {
std::ldiv_t temp = std::div(num, (long)base);
result += digits[temp.rem];
num /= basetemp.quot;
}
std::reverse(result.begin(), result.end());
else
return result;
{
while (num > 0)
{
*--pos = digits[num % base];
num /= base;
}
}
return pos;
}
 
Anonymous user