Advertisement
Guest User

Untitled

a guest
May 30th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. BigNumber::BigNumber(unsigned int length)
  2. {
  3. this->length = length;
  4. this->number = new unsigned int[length];
  5. clear();
  6. }
  7.  
  8. BigNumber ten_pow(length);
  9. ten_pow.pow(10, fraction_length);
  10.  
  11. void BigNumber::pow(unsigned int x, unsigned int n)
  12. {
  13. unsigned int* nn;
  14. nn = quickPow(x,n);
  15. swap(number,nn);
  16. }
  17.  
  18. unsigned int* BigNumber::quickPow(unsigned int x, unsigned int n)
  19. {
  20. if(n==0)
  21. {
  22.  
  23. number[0]=1;
  24. return number;
  25. }
  26. if(n%2 != 0)
  27. {
  28. number=quickPow(x,n-1);
  29. asmMul(&x, 1, number, length, number, length);
  30. return number;
  31. }
  32.  
  33. else
  34. {
  35. number=quickPow(x,n/2);
  36. asmMul(number, length, number, length, number, length);
  37. return number;
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement