打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Find most significant bit (left-most) that is set in a bit array
userphoto

2012.04.25

关注
#include<stdio.h>

#define DIF_VAL (1<<15)


int find_sigbit(int *tlb,int n)
{
        int r=0;
        if(n&0xffff0000){r+=16;n>>=16;}
//      if(n&0xff00){r+=8;n>>=8;}
        return r+tlb[n];
}
int main(void)
{
int k;
int tlb[32768];
        int idx=0,idv=1,i;
        for(i=0;i<DIF_VAL;i++)
        {
                if(i>=idv)
                {
                        idx++;idv<<=1;
                }
   
                tlb[i]=idx;

        }
     /*   for(i=0;i<DIF_VAL;i++)
        {
                printf("%d ",tlb[i]);
                if((i+1)%32==0)printf("\n");
        }*/
printf("please enter a value\n");
scanf("%d",&k);
printf("k's first significant bit is %d\n",find_sigbit(tlb,k));
        return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
while循环举例
请求页式存储管理的页面置换算法
操作 变量 的某一位
C语言顺序查找算法及代码
原地排序与链表翻转
操作系统
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服