问题描述: 输入一个整数,返回其二进制表示中最低的一位为1的下标值。
很多CPU都在硬件层面直接提供该指令,例如,i386的BSF指令。但是,如果硬件没有提供该指令,又当如何。来看kernel中的算法:
应用分治思想进行依序判断..... 1 int __ffs(int x) 2 ...
分类:
其他好文 时间:
2014-07-22 23:00:13
阅读次数:
336
阶乘是个很有意思的函数,我们来看看两个跟阶乘相关的问题。1、给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N! =
3628800,末尾就有两个02、求N!
的二进制表示中最低位1的位置我们先分析第一个问题我们发现0的个数,就是10的个数,而10是由2跟5组成的,但是,5的个数明...
分类:
其他好文 时间:
2014-05-02 15:25:32
阅读次数:
281
题目贴这个题是因为看题解有更简单的方法, 我做的时候是直接算的,
也很简单。贴一下题解吧:如果一个整数不等于 0,那么该整数的二进制表示中至少有一位是 1。这个题结果可以直接输出 x - (x&(x-1));因为x-1
之后二进制下,就是最右边的1变成了0, 最右边的1的 右边所有的0变成了1, 不...
分类:
其他好文 时间:
2014-05-01 22:28:17
阅读次数:
472
问题:对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法的执行效率尽可能高。 1 #include 2 using
namespace std; 3 //最简单的思路,除2有余数 4 int fun1(unsigned int a) 5 { 6 int coun...
分类:
其他好文 时间:
2014-05-01 19:47:34
阅读次数:
355