首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
2
0
[求助]如何高效计算出整型数占用的二进制位数
发表于: 2013-11-27 17:11
9649
[求助]如何高效计算出整型数占用的二进制位数
xhK
3
2013-11-27 17:11
9649
如何高效计算出整型数占用的二进制位数,
例如:
2的二进制为 10,占用2个二进制位
3的二进制为 11,占用2个二进制位
4的二进制为 100,占用3个二进制位
怎么才能高效的计算呢
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
收藏
・
2
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
13
)
whnet
雪 币:
185
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
1029
粉丝
0
关注
私信
whnet
2
楼
谁说2只占2位的?
你这应该说是:确定整数二进制表示中第一个1 的出现位置。
2013-11-27 17:19
0
疯子
雪 币:
2242
活跃值:
(488)
能力值:
( LV9,RANK:200 )
在线值:
发帖
9
回帖
461
粉丝
8
关注
私信
疯子
4
3
楼
Hamming Weight
2013-11-27 17:34
0
xhK
雪 币:
159
活跃值:
(38)
能力值:
( LV9,RANK:140 )
在线值:
发帖
18
回帖
122
粉丝
0
关注
私信
xhK
3
4
楼
对,应该这么说
2013-11-27 17:34
0
rockhard
雪 币:
441
活跃值:
(149)
能力值:
( LV9,RANK:170 )
在线值:
发帖
16
回帖
196
粉丝
2
关注
私信
rockhard
4
5
楼
最快?那查表!直接用你的数做数组索引,建一个大数组,个数是你想查最大的数。
数组前面几个值为
a[]=0 1 2 2 3 3 3 3 4
比如求8直接调用a[8]返回4
呵呵,牺牲空间换效率
2013-11-27 17:46
0
hackerlzc
雪 币:
1689
活跃值:
(379)
能力值:
( LV15,RANK:440 )
在线值:
发帖
33
回帖
613
粉丝
16
关注
私信
hackerlzc
10
6
楼
[log(x)] + 1
2013-11-27 17:52
0
DriverAsm
雪 币:
22
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
146
粉丝
0
关注
私信
DriverAsm
7
楼
左移 + 判断 ZF ?
对32位 二分查找。。。
2013-11-27 17:54
0
IamHuskar
雪 币:
1392
活跃值:
(5137)
能力值:
( LV13,RANK:240 )
在线值:
发帖
76
回帖
1662
粉丝
67
关注
私信
IamHuskar
4
8
楼
32位 比较五次就够了吧,当然数学的方法也可以试试,。比如LOG之类的
2013-11-27 18:05
0
rocwings
雪 币:
250
活跃值:
(468)
能力值:
( LV2,RANK:10 )
在线值:
发帖
3
回帖
48
粉丝
1
关注
私信
rocwings
9
楼
對數非常慢,比較法較快。
2013-11-27 18:34
0
tishion
雪 币:
496
活跃值:
(286)
能力值:
( LV13,RANK:400 )
在线值:
发帖
20
回帖
319
粉丝
11
关注
私信
tishion
9
10
楼
int f(int n)
{
n = (n&0x55555555) + ((n>>1)&0x55555555);
n = (n&0x33333333) + ((n>>2)&0x33333333);
n = (n&0x0f0f0f0f) + ((n>>4)&0x0f0f0f0f);
n = (n&0x00ff00ff) + ((n>>8)&0x00ff00ff);
n = (n&0x0000ffff) + ((n>>16)&0x0000ffff);
return n;
}
2013-11-27 19:15
0
老伙计
雪 币:
807
活跃值:
(2228)
能力值:
( LV2,RANK:10 )
在线值:
发帖
21
回帖
605
粉丝
11
关注
私信
老伙计
11
楼
int f(int x)
{
int n = 0 ;
while(x) {
x = x >> 1 ;
n ++ ;
}
return(n) ;
}
2013-11-27 19:36
0
shuax
雪 币:
1839
活跃值:
(1776)
能力值:
( LV12,RANK:230 )
在线值:
发帖
14
回帖
251
粉丝
9
关注
私信
shuax
2
12
楼
http://graphics.stanford.edu/~seander/bithacks.html
这里有很多
2013-11-27 21:36
0
xhK
雪 币:
159
活跃值:
(38)
能力值:
( LV9,RANK:140 )
在线值:
发帖
18
回帖
122
粉丝
0
关注
私信
xhK
3
13
楼
嗯 的确不少 多谢
2013-12-2 10:01
0
sjsme
雪 币:
25
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
9
回帖
29
粉丝
0
关注
私信
sjsme
14
楼
while(a) {a=a>>1,count++};
2013-12-2 10:45
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
xhK
3
18
发帖
122
回帖
140
RANK
关注
私信
他的文章
[原创][分享]dll 手动脱 aspack 壳输入表(IAT)寻找的一个小技巧
6780
[求助]网络代理问题
6369
[求助]如何高效计算出整型数占用的二进制位数
9650
[求助]Armadillo穿山甲的入口地址的特征
4215
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部