在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9731|回复: 26

[求助] 如何快速定位一个二进制数字中第一个1的位置

[复制链接]
发表于 2017-6-14 11:03:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
比如二进制数00000000...1000...00,如何快速找到其中的“1”的位置?因为我要找的二进制数位数比较多,超过了100位,所以用一般的case语句编写起来比较麻烦,有没有更简便的方法?
发表于 2017-6-14 11:09:15 | 显示全部楼层
用分级找吧,比如128位,先判断前64位等不等于0,不等于0,那就拆分这前64位;等于0,1就在后64位中,拆分;将64拆成2个32,再判断,。。。。。。这样一级级定位,可以吧?
发表于 2017-6-14 11:53:53 | 显示全部楼层
分段最好了,每8位为一段,并行查找
 楼主| 发表于 2017-6-14 13:44:34 | 显示全部楼层
回复 2# 菜鸟要飞


    这样会不会占用很多资源?
 楼主| 发表于 2017-6-14 13:50:37 | 显示全部楼层
回复 3# 吾要单片机


    要定位8位的一段就需要3位输出,128位那就需要48位输出了,感觉还是不太行得通
发表于 2017-6-14 14:12:57 | 显示全部楼层
你是想要一个时钟周期就出结果,还是怎么的?
 楼主| 发表于 2017-6-14 14:19:52 | 显示全部楼层
回复 6# 菜鸟要飞


   最好是一个时钟周期
发表于 2017-6-14 14:39:26 | 显示全部楼层
回复 7# 大林


   那你肯定得面积换时间了,得多用资源
 楼主| 发表于 2017-6-14 14:46:21 | 显示全部楼层
回复 7# 大林

我先试一下吧,非常感谢
发表于 2017-6-14 16:38:42 | 显示全部楼层
向左移位,判断最高位是否为1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 05:32 , Processed in 0.021476 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表