I recently made a bignum class using base 10 (lol). I stored the digits in a vector of ints. I knew at the time this was a very memory inefficient approach and I made myself the promise to change the radix when I was done. At the moment I'm thinking of radix 216 (65536). It would still allow me to do + and - and other operations with the hardware. Is there another base you guys recommend? And also, will it affect the performance?
A 32-bit type makes sense for a 32-bit architecture. Could you code it as a template so you could specify different types (char, short, int, ...)?
If you are more worried about the storage than the calculation efficiency, maybe you could convert your base 10 code to use a char vector instead. Or even change it to hex.