cerevra / int

38 stars 6 forks source link

Multiplication error #16

Closed dix75 closed 7 years ago

dix75 commented 7 years ago

There is a multiplication error if one of the values is greater than int64.

uint512_t a2 = 100000000000000000000_uint256;
uint512_t a3 = 100000000000000000000_uint256;
uint512_t a4 = a2 * a3;
std::cout << a4;       //776627963145224192000000000000000000000
assert(a4 == 100000000000000000000000000000000000000000_uint256, "");
cerevra commented 7 years ago

You are right. Thank you https://github.com/cerevra/int/commit/dcedd4a3feeeb40563e7826cdc580da6f0297ec8