zoukankan      html  css  js  c++  java
  • BSF算法

    查找一个整数的最低的位为1的下标是常用见的算法。很多CPU都在硬件层面直接提供该指令,例如,i386的BSF指令。

    但是,如果硬件没有提供该指令,又当如何。来看kernel中的算法:

    代码
    int __ffs(int x)
    {
        
    int r = 0;
        
        
    if (!x)
            
    return 0;
        
    if (!(x & 0xffff)) {
            x 
    >>= 16;
            r 
    += 16;
        }
        
    if (!(x & 0xff)) {
            x 
    >>= 8;
            r 
    += 8;
        }
        
    if (!(x & 0xf)) {
            x 
    >>= 4;
            r 
    += 4;
        }
        
    if (!(x & 3)) {
            x 
    >>= 2;
            r 
    += 2;
        }
        
    if (!(x & 1)) {
            x 
    >>= 1;
            r 
    += 1;
        }
        
    return r;
    }

    分治思想的完美体现。。。

  • 相关阅读:
    装饰器api
    API
    Python之模块和包
    编辑后保留原URl搜索条件
    数据结构相关知识
    博客系统之评论树与评论楼相关操作
    Redis五大数据类型以及操作
    Class python31
    python_class21
    数字及字符串
  • 原文地址:https://www.cnblogs.com/hustcat/p/1734889.html
Copyright © 2011-2022 走看看