bignumクラスを作っていて、引き算のやり方が分からないので質問します。
データの持ち方は、short配列で 並びはLSB-MSB、
符号は別にbool型で持っています。

以下のようにして足し算を行っているのですが、
マイナスの足し算が出来ないので、引き算の計算が出来ません。
何か、定石みたいな方法無いでしょうか?

bool sign;
u_short *datap;

long* tempp;
for(...) {
 tempp[i] = datap1[i] + datap2[i];
}

u_short *resultp;
u_short adv = 0;
for(...) {
 long n = tempp[i] + adv;
 adv[i] = (n & 0xffff0000) >> 16;
 resultp[i] = n & 0x0000ffff;
}
if (adv != 0)
 resultp[i] = adv;