求教代码 算法的总体设计思想,代码大致解释,万分感谢
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cassert>
using namespace std;
class SuperNumber {
public:
SuperNumber() {
memset(data, 0, MAX_SIZE);
high = 0;
}
// 一般整型到SuperNumber的转换,该版本中不支持负数
SuperNumber(unsigned long l) {
memset(data, 0, MAX_SIZE);
high = 0;
while(l) {
data[++high] = l % 10;
l /= 10;
}
}
// str为字符串形式表示的十进制数
SuperNumber(const char* str) {
assert(str != NULL);
high = strlen(str);
for(int i = high, j = 0; i >= 1; i--, j++) {
data[i] = str[j] - '0';
}
}
SuperNumber(const SuperNumber& s) {
memcpy(data, s.data, MAX_SIZE);
high = s.high;
}
operator const char*() const {
return toString(10);
}
SuperNumber& operator=(const SuperNumber& s) {
if(this != &s) {
memcpy(data, s.data, MAX_SIZE);
high = s.high;
}
return *this;
}