]> git.llucax.com Git - z.facultad/75.29/dale.git/blob - tests/number.cpp
resta corregida + un par de asserts
[z.facultad/75.29/dale.git] / tests / number.cpp
1 #include <iostream>
2 #include "../src/number.h"
3
4 int main()
5 {
6 #if 0
7         unsigned long buf[5] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0 };
8         //unsigned buf[3] = { 0xffffffff, 0x1, 0 };
9         number<> nu(buf, 4);
10         //number< unsigned > nu2(nu);
11         number<> nu2 = 2u;
12         std::cout << "nu = " << nu << "\n\n";
13         std::cout << "nu2 = "  << nu2 << "\n\n";
14         std::cout << "nu + nu2 = "  << nu + nu2 << "\n\n";
15         std::cout << "nu * nu2 = "  << nu * nu2 << "\n\n";
16         std::cout << "nu^nu2 = "  << potencia(nu, nu2) << "\n\n";
17 #endif
18
19 #if 0
20         number< unsigned > nu = 0xffffffff;
21         std::cout << "nu = " << nu ;
22
23         nu << 5;
24         std::cout << "nu = " << nu ;
25
26         number<> n1 = 0xFFFFFFFF;
27         number<> n2 = 0xFFFFFFFF;
28
29         n1 += 1;
30
31 /*      for (int k = 0; k < 100; k++)
32         {
33                 n1 += (unsigned) rand() * k;
34                 n2 += (unsigned) rand() * k;
35         }
36 */
37         
38 //      n1 <<= 1;
39 //      n2 <<= 1;
40
41         if (n1 < n2)
42                 std::cout << "n1 es menor que n2\n";
43         else if (n2 < n1)
44                 std::cout << "n1 es mayor que n2\n";
45         else 
46                 std::cout << "n1 es igual que n2\n";
47
48         std::cout << "\n";
49         
50
51 //      for (int j=0; j<10; j++)
52 //              n1.borrow(0);
53
54         std::cout << "n1: " << n1 ;
55         std::cout << "\n";
56         std::cout << "n2: " << n2 ;
57         std::cout << "\n";
58
59         n1 -= n2;
60
61         std::cout << "n1-n2: " << n1 ;
62 #endif
63
64 #if 1
65         uint32_t buf[] = { 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
66         number<> nu(buf, 8, negative);
67         number<> nu2 = 0x2;
68         std::cout << "nu = " << nu ;
69         std::cout << "\n";
70         std::cout << "nu2 = " << nu2 ;
71         std::cout << "\n";
72         std::cout << "nu * nu2 = "  << naif(nu, nu2) ;
73         std::cout << "\n";
74         std::cout << "nu + nu2 = "  << nu + nu2 ;
75         std::cout << "\n";
76         std::cout << "nu - nu2 = "  << nu - nu2 ;
77
78 #endif
79
80         number<> h = 0x10000000;
81         h<<=1;
82         h += 0xfffffffc;
83         h<<=1;
84         h += 0xffffffff;
85         h<<=1;
86         h += 0x00000002;
87         number<> d = 0;
88         number<> m = 0xfffffffe;
89         m<<=1;
90         m += 0xffffffff;
91         m<<=1;
92         m += 0x00000001;
93
94         std::cout << "h: " << h ;
95         std::cout << "\n";
96         std::cout << "d: " << d ;
97         std::cout << "\n";
98         std::cout << "m: " << m ;
99         std::cout << "\n";
100
101         number<> a = h - d - m;
102
103         std::cout << "h-d-m: " << a ;
104
105
106         return 0;
107 }
108