class CUSuperInt {
public:
CUSuperInt(); CUSuperInt(DWORD); CUSuperInt(char*); CUSuperInt(CUSuperInt&);
virtual ~CUSuperInt();
protected:
DWORD* pValue; // 動態數組存儲數值(基數 2^32)
DWORD len; // 數組分配長度
DWORD last; // 有效長度(≥1)
};
採用動態擴容策略:空間不足時按 2 倍增長。last 標記有效位,避免無效高位運算。
"12345 567890"、"0x123 4567 89ab cdef"+ - * / %,++ --/= 返回餘數,商存左操作數;/ 僅返回商boolDobule()(左移乘 2n)、Half()(右移除 2n,捨餘)ToDecStr():轉十進制字符串ToHexStr():轉十六進制字符串自定義 CMyException 處理除零與越界。越界上限設為 0x1000000 DWORD(約 1.6 億十進制位),超出拋出異常。
直接反復除 10 效率極低。改用除數 1,000,000,000(109),每次得到 9 位十進制數,大幅減少除法次數。
memcpy 重寫)開發環境:VC6.0 + WinMe/XP。源碼附後。