noler89

Untitled

Aug 14th, 2017
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. pragma solidity ^0.4.15;
  2.  
  3. library bigInt{
  4. struct bigint{
  5. int8 sign; //-1-"-" 1-"+"
  6. uint number;
  7. }
  8. // function bigIntcontract(uint8 _sign, uint _number) public{
  9. // sign=_sign;
  10. // number=_number;
  11. // }
  12.  
  13. function fromUint (int8 _sign,uint _number) internal returns(bigint b){
  14. b.sign=_sign;
  15. b.number=_number;
  16. return b;
  17. }
  18.  
  19. function show() internal returns(bigint b){
  20. return(b);
  21. }
  22.  
  23. function plus(bigint b1,bigint b2) internal returns(bigint b3){
  24. if (b1.sign==b2.sign){
  25. b3.sign=b1.sign;
  26. b3.number=b1.number+b2.number;
  27. return (b3);
  28. }
  29. if (b1.number>b2.number){
  30. b3.sign=b1.sign;
  31. b3.number=b1.number-b2.number;
  32. return (b3);
  33. }
  34. else{
  35. b3.sign=b2.sign;
  36. b3.number=b2.number-b1.number;
  37. return(b3);
  38. }
  39. }
  40.  
  41. function minus(bigint b1,bigint b2) internal returns(bigint b3){
  42. b2.sign*=-1;
  43. b3=plus(b1,b2);
  44. }
  45.  
  46. function mod(bigint b1, uint b2) internal returns(uint b3){
  47. b3=b1.number%b2;
  48. if(b1.sign==-1)
  49. b3=b2-b3;
  50. return(b3);
  51. }
  52.  
  53. function multiply (bigint b1, bigint b2) internal returns(bigint b3){
  54. b3.sign=b1.sign*b2.sign;
  55. b3.number=b1.number*b2.number;
  56. return b3;
  57. }
  58.  
  59. function multiply (bigint b1, uint b2) internal returns(bigint b3){
  60. b3.sign=b1.sign*1;
  61. b3.number=b1.number*b2;
  62. return b3;
  63. }
  64.  
  65. function divide (bigint b1, bigint b2) internal returns(bigint b3){
  66. b3.sign=b1.sign*b2.sign;
  67. b3.number=b1.number/b2.number;
  68. }
  69.  
  70. function divide (bigint b1, uint b2) internal returns(bigint b3){
  71. b3.sign=b1.sign*1;
  72. b3.number=b1.number/b2;
  73. }
  74.  
  75. }
Add Comment
Please, Sign In to add comment