solidity智能合约[54]-安全—取反-创新互联
相反数
有符号的solidity整数类型如果有N位。那么其值的范围是-2^(N-1) to 2^(N-1)-1。 这意味着该类型负数的大值取相反数之后不能够被接收。
成都网站设计、成都网站制作,成都做网站公司-成都创新互联已向1000多家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。相反数陷阱
如下的Negation合约说明了负数在面临取相反数操作时可能遇到的问题。由于对于负数取相反数。实则是取负数的补码操作。因此、当某int类型大的负数取相反数的时候,会是其本身。如当int8的大值-128传递到negate8执行取反操作的时候,会返回128。
1 | contract Negation { |
解决办法
1、使用更大的类型来接收可以避免出现问题。
2、检查是否达到了该类型的大负数。
本文链接: https://dreamerjonson.com/2018/11/25/solidity-54-negation/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文标题:solidity智能合约[54]-安全—取反-创新互联
转载源于:http://ybzwz.com/article/issco.html