菜鸟求助,急!!!!!!!!!!

王向飞 2011-01-21 05:17:49
2的0次方等于1
2的1次方等于2

给出一个数15

那么可以得出他是由 1+ 2+ 4+ 8 求出来的,
也就是2的N次方相加,

这个反算的过程在数学上叫什么??
...全文
178 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnkiminzhuhu 2011-01-24
  • 打赏
  • 举报
回复
好高深啊
  • 打赏
  • 举报
回复
cnkiminzhuhu 2011-01-24
  • 打赏
  • 举报
回复
程序的话 递归就可以
lflljt 2011-01-24
  • 打赏
  • 举报
回复
好深奥
王向飞 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xiaoguanzhao 的回复:]

好象某个系统设置权限是这样的
如1为读,2可写,4为隐藏,8修改,16为删除,32为...每次都为前一个数的倍数

如果最后读出值为15则为1+2+4+8,即1为读,2可写,4为隐藏,8修改
如为7则为1+2+4 即1为读,2可写,4为隐藏
如为3则为1+2 即1为读,2可写

依此类推。。
[/Quote]老大,您是明白人 嘿嘿
xiaoguanzhao 2011-01-24
  • 打赏
  • 举报
回复
好象某个系统设置权限是这样的
如1为读,2可写,4为隐藏,8修改,16为删除,32为...每次都为前一个数的倍数

如果最后读出值为15则为1+2+4+8,即1为读,2可写,4为隐藏,8修改
如为7则为1+2+4 即1为读,2可写,4为隐藏
如为3则为1+2 即1为读,2可写

依此类推。。

oO寒枫Oo 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wxf163 的回复:]
引用 5 楼 lxpbs8851 的回复:

菜鸟帮顶 额 十进制转化为二进制
有没有什么公式 能直接算出来是1 2 4 8
[/Quote]

declare @i int
set @i=11
declare @s varchar(100);
set @s=''
while (@i>0)
begin
select @s=cast(@i%2 as varchar)+@s,
set @i=@i/2
end
select REVERSE(@s)


家里系统坏了 不好测试
xyytuo 2011-01-21
  • 打赏
  • 举报
回复
叶子 2011-01-21
  • 打赏
  • 举报
回复

-- =============================================
-- Author: <maco_wang>
-- Create date: <2011-01-21>
-- Description: <将一个字符串分解为m个2的n次方的和>
-- <效率不好,见谅>
-- =============================================
ALTER PROC GetSumSequence ( @num INT )
AS
BEGIN
DECLARE @numc INT
SET @numc = @num
DECLARE @numstr VARCHAR(50)
SET @numstr = ''
WHILE ( @num <> 0 )
BEGIN
SET @numstr = @numstr + CONVERT(CHAR(1), @num % 2)
SET @num = @num / 2
END
SELECT REVERSE(@numstr)
DECLARE @i INT
SET @i = LEN(@numstr)
DECLARE @j VARCHAR(MAX)
SET @j = ''
WHILE ( @i > 0 )
BEGIN
IF ( SUBSTRING(REVERSE(@numstr), LEN(@numstr) - @i + 1, 1) = '1' )
SELECT @j = @j + '+2^' + CAST (@i-1 AS VARCHAR(10))
SET @i = @i - 1
END
SELECT CAST(@numc AS VARCHAR(100)) + '=' + STUFF(@j, 1, 1, '') AS 'm个2的n次方的和'
END
EXEC GetSumSequence 12
/*
12=2^3+2^2
*/
EXEC GetSumSequence 65
/*
65=2^6+2^0
*/
EXEC GetSumSequence 892
/*
892=2^9+2^8+2^6+2^5+2^4+2^3+2^2
*/
EXEC GetSumSequence 1919191
/*
1919191=2^20+2^19+2^18+2^16+2^14+2^11+2^7+2^6+2^4+2^2+2^1+2^0
*/

晕死了,刚才写错了
zuoyulin521 2011-01-21
  • 打赏
  • 举报
回复
数学归纳啊
快溜 2011-01-21
  • 打赏
  • 举报
回复
用程序写还可以,sql没写过
叶子 2011-01-21
  • 打赏
  • 举报
回复

-- =============================================
-- Author: <maco_wang>
-- Create date: <2011-01-21>
-- Description: <将一个字符串分解为m个2的n次方的和>
-- <效率不好,见谅>
-- =============================================
CREATE PROC GetSumSequence ( @num INT )
AS
BEGIN
DECLARE @numc INT
SET @numc = @num
DECLARE @numstr VARCHAR(50)
SET @numstr = ''
WHILE ( @num <> 0 )
BEGIN
SET @numstr = @numstr + CONVERT(CHAR(1), @num % 2)
SET @num = @num / 2
END
DECLARE @i INT
SET @i = LEN(@numstr)
DECLARE @j VARCHAR(MAX)
SET @j = ''
WHILE ( @i > 0 )
BEGIN
IF ( SUBSTRING(@numstr, LEN(@numstr) - @i + 1, 1) = '1' )
SELECT @j = @j + '+2^' + CAST (@i AS VARCHAR(10))
SET @i = @i - 1
END
SELECT CAST(@numc AS VARCHAR(100)) + '=' + STUFF(@j, 1, 1, '') AS 'm个2的n次方的和'
END

EXEC GetSumSequence 65
/*
65=2^7+2^1
*/
EXEC GetSumSequence 892
/*
892=2^8+2^7+2^6+2^5+2^4+2^2+2^1
*/
EXEC GetSumSequence 1919191
/*
1919191=2^21+2^20+2^19+2^17+2^15+2^14+2^10+2^7+2^5+2^3+2^2+2^1
*/
小潜s 2011-01-21
  • 打赏
  • 举报
回复
求对数?
王向飞 2011-01-21
  • 打赏
  • 举报
回复
还不太像 ,比如我要给11
那么就是 1 2 8
王向飞 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jackycontact 的回复:]

看看等比数列计算公式
[/Quote]反算的学名叫什么?知道比例为2
清海扬波 2011-01-21
  • 打赏
  • 举报
回复
看看等比数列计算公式
王向飞 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lxpbs8851 的回复:]

菜鸟帮顶 额 十进制转化为二进制
[/Quote]有没有什么公式 能直接算出来是1 2 4 8
oO寒枫Oo 2011-01-21
  • 打赏
  • 举报
回复
菜鸟帮顶 额 十进制转化为二进制
WHI 2011-01-21
  • 打赏
  • 举报
回复
顶 可是没理解什么意思 ? …… !
-晴天 2011-01-21
  • 打赏
  • 举报
回复
十-二进制转换.
加载更多回复(2)

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧