C#系列--位运算(3)
2008-12-08 11:42
148 查看
问题3:对字节变量,其二进制表示法中求有多少个1,如 00101010则返回值为 3,也是要求效率最高
关于此题答案很多,这里不再一一列出,下面这个算法时间复杂度是O(m),m取决于数字中1的个数
//判断一个整数二进制表示中1的个数
public static int OnesCount(int number)
{
int num = 0;
while (number != 0)
{
number &= number - 1;
num++;
}
return num;
}
关于其他各种算法的探讨,可以参考两本书,程序员面试攻略第2版(机械工业出版社) 11.2位操作 和 编程之美(电子工业出版社) 2.1 有更详细的论述
下面我们关注一下枚举类型和位标记
关于此题答案很多,这里不再一一列出,下面这个算法时间复杂度是O(m),m取决于数字中1的个数
//判断一个整数二进制表示中1的个数
public static int OnesCount(int number)
{
int num = 0;
while (number != 0)
{
number &= number - 1;
num++;
}
return num;
}
关于其他各种算法的探讨,可以参考两本书,程序员面试攻略第2版(机械工业出版社) 11.2位操作 和 编程之美(电子工业出版社) 2.1 有更详细的论述
下面我们关注一下枚举类型和位标记
相关文章推荐
- C#基础系列(1)-- 第一部分 基础数据类型与操作 -- 位运算(1)
- C#系列--位运算(2)
- C#基础系列(2)-- 第一部分 基础数据类型与操作 -- 位运算(2)
- C#基础系列(3)-- 第一部分 基础数据类型与操作 -- 位运算(3)
- C#系列--位运算
- C#系列--位运算(1)
- (转)C#线程系列讲座(5):同步技术之Monitor
- C# 互操作性入门系列(四):在C# 中调用COM组件
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十) 第一部分拓展小结篇
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十三)自适应性窗口化与全屏化(WPF Only)
- 大白话系列之C#委托与事件讲解(三)
- [译林系列--Ruby] 通过IronRuby和C#学习Ruby[2]
- C#网络编程系列文章(一)之Socket实现异步TCPserver
- C# 设计模式系列教程-模板方法模式
- C#学习系列-.NET体系结构
- 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
- C#系列之String和StringBuilder
- C#多线程学习(三) 生产者和消费者 (转载系列)——继续搜索引擎研究
- Expert C# 2008 Business Objects 系列随笔不再更新
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十六)通用型角色头像面板