Класс предназначен для операций с числами со знаком. Комбинированных операций со знаковыми и безнаковыми числами там нет, поэтому безнаковые числа DWORD преобразуются транслятором С в знаковые. Т.е. DWORD dw_num = 0x8EDF3155 - становится отрицательным числом.
Вот код для присваивания беззнакового значения:
Код:
cBigNumber a; // Неограниченное число.
DWORD dw_num = 0x8EDF3155UL; // Беззнаковое число.
{
a.expand (2); // Память под два слова.
long *pa = (long*) a.code(); // Указатель для модификации кода.
pa [0] = dw_num; // Присвоение числа.
pa [1] = 0; // Нулевое слово для знака.
pa [-1] = 1 + ((long)dw_num < 0); // Число слов.
} // Удалить указатель.