You should be doing the math at the binary level using things like & | Shl Shr etc
You can add together bigger numbers by splitting them into smaller chunks and adding each chunk together. If you are adding 2 Int's, split each of them into 2 Shorts so you end up with 4 shorts. e.g (Var1 Shr 16), (Var1 & $FFFF), (Var2 Shr 16), (Var2 & $FFFF). Then add the lower portion of var 1 to the lower portion of var 2. Then the upper portions. Any overflow that happens from the 15th into the 16th but you have to add to the total (e.g. ((Var1Short+Var2SHort) & $1000) Shr 16) added). There are tricks to it. You can still do it with the variable space you have but you just have to make it into smaller pieces and combine them.
I've done this to allow + and - of unsigned Long 64-bit numbers. * and / is harder though because two 16-bit values multiplies becomes up to a 32-bit value. I cheated and used conversion from unsigned 64-bit to signed 64-bit to Doubles and back.
You can add together bigger numbers by splitting them into smaller chunks and adding each chunk together. If you are adding 2 Int's, split each of them into 2 Shorts so you end up with 4 shorts. e.g (Var1 Shr 16), (Var1 & $FFFF), (Var2 Shr 16), (Var2 & $FFFF). Then add the lower portion of var 1 to the lower portion of var 2. Then the upper portions. Any overflow that happens from the 15th into the 16th but you have to add to the total (e.g. ((Var1Short+Var2SHort) & $1000) Shr 16) added). There are tricks to it. You can still do it with the variable space you have but you just have to make it into smaller pieces and combine them.
I've done this to allow + and - of unsigned Long 64-bit numbers. * and / is harder though because two 16-bit values multiplies becomes up to a 32-bit value. I cheated and used conversion from unsigned 64-bit to signed 64-bit to Doubles and back.