函数介绍——MulDiv

http://blog.sina.com.cn/s/blog_579ebc11010008ql.html

函数介绍——MulDiv

  (2007-03-27 10:05:30)
 分类: 编程语言
    MulDiv函数实现功能:第三个32位的数字除以两个32位的数字的乘积。得到的数值为四舍五入的结果。
    函数语法: int MulDiv(
                 int nNumber,    //32位数值,作为被乘数,
                 int nNumerator, //32位数值,作为乘数,
                 int nDenominator,//32位数值,作为被除数
                                 //(分母),nNumber,nNumberator的乘积
                                 //作为除数(分子)
               );
      如果返回成功,则结果位乘法和除法的结果,如果溢出或分母(nDenominator)为0,则返回-1。

转载于:https://www.cnblogs.com/delphi-xe5/p/5378849.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
unswapv3合约的solt0函数是用来计算在Uniswap V3中一个价格范围内的流动性总量的。具体来说,solt0函数的输入参数包括价格范围的下限和上限,以及该价格范围内的流动性池子的信息。该函数的输出则是该价格范围内的总流动性量。 下面是solt0函数的代码实现: ```solidity function solt0( uint128 tickLower, uint128 tickUpper, uint256 feeGrowthInside0LastX96, uint256 feeGrowthInside1LastX96, uint256 liquidity ) internal pure returns (uint256 sqrtPriceX96) { if (liquidity == 0) return TickMath.getSqrtRatioAtTick(TickMath.MIN_TICK); uint256 feeGrowthInside0X128 = feeGrowthInside0LastX96 << 32; uint256 feeGrowthInside1X128 = feeGrowthInside1LastX96 << 32; uint160 sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(int24(tickLower)); uint160 sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(int24(tickUpper)); if (sqrtRatioAX96 >= sqrtRatioBX96) return 0; uint256 intermediate = FullMath.mulDiv( feeGrowthInside1X128 - feeGrowthInside0X128, sqrtRatioAX96 - sqrtRatioBX96, sqrtRatioBX96 * sqrtRatioAX96 ); uint256 bottom = (sqrtRatioBX96 - sqrtRatioAX96).mul(liquidity); return FullMath.sqrt(intermediate / bottom.add(intermediate)); } ``` 该函数首先判断流动性是否为0,如果为0则直接返回最小价格对应的sqrtPriceX96值。如果流动性不为0,则分别计算出价格范围内的两个价格点的sqrtRatioX96值,然后根据这些值以及流动性池子内的feeGrowth信息计算出总流动性量。最后返回该价格范围内的sqrtPriceX96值。 需要注意的是,该函数是internal函数,意味着它只能在合约内部被调用,而不能从外部直接访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值