diff --git a/src/addition.c b/src/addition.c index d43de60..208161a 100644 --- a/src/addition.c +++ b/src/addition.c @@ -17,7 +17,7 @@ struct data struct datad { union { double dnum; - unsigned long lnum; + unsigned long long lnum; } number; unsigned long sign; unsigned long exponent; @@ -111,12 +111,12 @@ float addition_float(float number1, float number2) { return num3.number.floating; } -unsigned long sign_double(unsigned long a) { +unsigned long long sign_double(unsigned long long a) { if (a & 0x8000000000000000 == 0x8000000000000000) return 1; else return 0; } -unsigned long precision_double(unsigned long a) { +unsigned long long precision_double(unsigned long long a) { a &= 0x000fffffffffffff; return a; } \ No newline at end of file diff --git a/src/addition.h b/src/addition.h index c770bd8..e02a55a 100644 --- a/src/addition.h +++ b/src/addition.h @@ -23,8 +23,8 @@ unsigned int output_float(unsigned int sign, unsigned int exponent, unsigned int float addition_float(float number1, float number2); -unsigned long sign_double(unsigned long a); +unsigned long long sign_double(unsigned long long a); -unsigned long precision_double(unsigned long a); +unsigned long long precision_double(unsigned long long a); #endif // ADDITION_H \ No newline at end of file diff --git a/test/test_addition.c b/test/test_addition.c index ae4f1e7..ad81d17 100644 --- a/test/test_addition.c +++ b/test/test_addition.c @@ -15,7 +15,7 @@ union { union { double dnum; - unsigned long lnum; + unsigned long long lnum; } numberd[6]; void setUp(void) @@ -286,8 +286,8 @@ void test_addition_addition_float_sumofpositivnumbers(void) void test_addition_sign_double_numbers(void) { - unsigned long result[2]; - unsigned long expected[2] = { 1, 0 }; + unsigned long long result[2]; + unsigned long long expected[2] = { 1, 0 }; numberd[0].dnum = -3004683105640520235, numberd[1].dnum = 0.05313546453135; result[0] = sign_double(numberd[0].lnum);