Simplify big_int_not for negative inputs

This commit is contained in:
gingerBill
2021-07-11 17:43:56 +01:00
parent 3600b2e209
commit ff2e5c3efe
+8
View File
@@ -415,6 +415,14 @@ void big_int_not(BigInt *dst, BigInt const *x, i32 bit_count, bool is_signed) {
big_int_from_u64(dst, 0);
return;
}
if (big_int_is_neg(x)) {
// ~x == -x - 1
big_int_neg(dst, x);
mp_decr(dst);
mp_mod_2d(dst, bit_count, dst);
return;
}
BigInt pow2b = {};
mp_2expt(&pow2b, bit_count);