code for fun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年6月27日

摘要: 本篇文章介绍计算二进制数字尾部连续0的数目的相关算法,例如:v=(1101000)2,该数尾部连续0的数目=3方法1:线性时间算法unsigned int v; // 需要计算的目标整数int c; // c用来保存计算的结果if (v){ v = (v ^ (v - 1)) >> 1; for (c = 0; v; c++) { v >>= 1; }}else{ c = CHAR_BIT * sizeof(v);}原理比较简单,下面提供一段C测试代码,根据代码显示的结果不难理解算法:#include#include#includevoid tranlate(long 阅读全文
posted @ 2013-06-27 00:11 xueda120 阅读(949) 评论(0) 推荐(0) 编辑