diff --git a/integer.cpp b/integer.cpp index c5ade04..46324a2 100644 --- a/integer.cpp +++ b/integer.cpp @@ -136,7 +136,7 @@ public: friend Integer &abs_sub(Integer &lhs, Integer const &rhs) { assert(abs_lt(rhs, lhs)); auto r_size = rhs.true_size(); - auto t_size = r_size + (lhs.true_size() > r_size ? 1 : 0); + auto t_size = lhs.true_size(); bool overflow = false; for (std::size_t i = 0; i < t_size; i++) { byte to_sub = 0; @@ -144,11 +144,11 @@ public: overflow = false; if (r_size > i) { to_sub = rhs.bytes[i]; - if (to_sub + overflow_handle > lhs.bytes[i] || - // overflow detection - (to_sub + overflow_handle == 0 && to_sub != 0)) { - overflow = true; - } + } + if (to_sub + overflow_handle > lhs.bytes[i] || + // overflow detection + (to_sub + overflow_handle == 0 && to_sub != 0)) { + overflow = true; } lhs.bytes[i] -= to_sub + overflow_handle; } @@ -319,7 +319,7 @@ int main(void) { } for (std::size_t i = 0; i <= 4500; i++) { Integer n = i; - std::cout << n << std::endl; + // std::cout << n << std::endl; Integer base_n = n; n *= 1; assert(n == base_n);