您的位置:首页 > 其它

将任意一个数解析为2的幂的和的方法

2007-11-30 20:01 106 查看
将任意一个数解析为2的幂的和的方法——递归 规律:
如给定 14
∵ 2^3 < 14 < 2^4
∴ 14中必有8——2^3 14 - 8 = 6
∵ 2^2 < 6 < 2^3
∴ 6中必有4——2^2 6 - 4 = 2
∵ 2 = 2
∴ 14 = 2^3 + 2^2 + 2^1

Parameters : @TotalNum Type: INT @SpecifiedNum Type: INT Steps : Author : Waxdoll Cheung Date : 2005-03-21*/

CREATE FUNCTION dbo.Fun_WheIncluded ( @TotalNum INT, @SpecifiedNum INT )RETURNS BIT AS BEGIN

DECLARE @varRet BIT

DECLARE @varLoop INT

SET @varLoop = 0

WHILE (@TotalNum >= CAST(POWER(2, @VarLoop) AS INT)) SET @varLoop = @varLoop + 1

SET @TotalNum = @TotalNum - CAST(POWER(2, @varLoop - 1) AS INT)

IF (@varLoop = @SpecifiedNum + 1) SET @varRet = 1 ELSE BEGIN IF (@TotalNum >= 1) RETURN dbo.Fun_WheIncluded(@TotalNum, @SpecifiedNum) ELSE SET @varRet = 0 END

RETURN @varRetEND
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐