书法字典:https://www.shufadict.com

2010年5月19日

算法-求一个二进制数的长度

摘要: 任意给定一个32位无符号整数n,求其对应的二进制数长度。先举几个例子解释一下什么是二进制数的长度,比如8 = 1000,则长度是4, 7 = 0111,长度为3。所以一个二进制数的长度也即最高位1的下标值+1(下标从0开始)。题目很简单,下面提供三种方法普通方法递归法二分搜索+查表普通法移位+计数,每移位一次,计数器加1,直到n为0int BitLength(unsigned int n){ int c = 0 ; // counter while (n) { ++c ; n >>= 1 ; } return c ;}运算次数,如果n的二进制长度为k,那么共有k次循环,最多循环32 阅读全文

posted @ 2010-05-19 15:32 翰墨小生 阅读(11796) 评论(15) 推荐(4) 编辑

导航

书法字典:https://www.shufadict.com