如果我试图制作一个合成的无符号integer_512,但Ethereum中支持的最大整数是u256,那么如何将2 u256组合成一个坚实的u512?
如果我也在寻找像gt,lt,eq,read/show/tostring这样的重载操作符,作为可映射的键,在这个联合数据类型上--所有存在于基本数据类型上的函数,在哪里有一个很好的模板来正确地完成或者开始呢?
谢谢
发布于 2019-05-28 07:34:30
如果您只对这三个比较运算符感兴趣,那么很容易:
struct uint512 {
uint256 hi;
uint256 lo;
}
function eq(uint512 x, uint512 y) internal pure returns (bool) {
return x.hi == y.hi && x.lo == y.lo;
}
function lt(uint512 x, uint512 y) internal pure returns (bool) {
return x.hi < y.hi || (x.hi == y.hi && x.lo < y.lo);
}
function gt(uint512 x, uint512 y) internal pure returns (bool) {
return x.hi > y.hi || (x.hi == y.hi && x.lo > y.lo);
}https://ethereum.stackexchange.com/questions/71162
复制相似问题