我见过一个将-1存储为无符号整数的合同。
uint256 can = allowed ? uint256(-1) : 0;
有人能解释一下这样做的好处吗?
uint256 can = allowed ? 1 : 0;
发布于 2020-02-25 14:00:33
通过2s-补,uint256(-1)等于uint256的最大值。
因此,它本质上是编写0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF的一种更短的方法。
对于bool can来说,您的疑惑是正确的(也就是说,allowed ? true : false就足够了)。
但是由于使用了uint256 can,您的问题的答案取决于它用于.
发布于 2020-02-25 14:04:57
uint256(-1)是给出最大uint256值的一个技巧。
发布于 2022-10-26 20:05:58
使用type(uint256).max更好的可读性。支持坚固性>= 0.6.8
https://ethereum.stackexchange.com/questions/80081
复制相似问题