X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=tomsfastmath%2Fsrc%2Fbin%2Ffp_to_unsigned_bin.c;fp=tomsfastmath%2Fsrc%2Fbin%2Ffp_to_unsigned_bin.c;h=f0eeb56231100c8214f5440016c9d13089eaa4f3;hb=66bc25938679f1d6a1d1200f329093d82a5e99b4;hp=0000000000000000000000000000000000000000;hpb=a52ee0733f420ca20224049260d6fc5cf7d8f621;p=zpackage diff --git a/tomsfastmath/src/bin/fp_to_unsigned_bin.c b/tomsfastmath/src/bin/fp_to_unsigned_bin.c new file mode 100644 index 0000000..f0eeb56 --- /dev/null +++ b/tomsfastmath/src/bin/fp_to_unsigned_bin.c @@ -0,0 +1,29 @@ +/* TomsFastMath, a fast ISO C bignum library. + * + * This project is meant to fill in where LibTomMath + * falls short. That is speed ;-) + * + * This project is public domain and free for all purposes. + * + * Tom St Denis, tomstdenis@gmail.com + */ +#include + +void fp_to_unsigned_bin(fp_int *a, unsigned char *b) +{ + int x; + fp_int t; + + fp_init_copy(&t, a); + + x = 0; + while (fp_iszero (&t) == FP_NO) { + b[x++] = (unsigned char) (t.dp[0] & 255); + fp_div_2d (&t, 8, &t, NULL); + } + fp_reverse (b, x); +} + +/* $Source$ */ +/* $Revision$ */ +/* $Date$ */