I'm working on a project that requires me to work with numbers larger than the largest numerical datatype in c. I was thinking of using structs with bit fields to represent this, but it's already smelling bad. Anyone got any tips? (Not looking for a library, more of a thought process to go behind doing something like this.)
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
I suggest to first check out the GNU MP Bignum library.
If licensing is a problem you have to roll your own. My first choice for the data-type would be a simple array of unsigned chars along with some extra data to denote how large that array is.
Something like this:
typedef struct
{
unsigned char * NumberData;
size_t AllocatedSize;
} MyBigNum;
Should be sufficient.
回答2:
The GNU MP Bignum Library would be my first choice.