博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数。
阅读量:4210 次
发布时间:2019-05-26

本文共 515 字,大约阅读时间需要 1 分钟。

//方法一,模2,余数为1,个数加1。再右移,直到v=0;时间复杂度为log2(v) int number(BYTE v){     int num=0;     while(v){         if(v%2==1)num++;         v=v>>1;         //v=v/2;     }     return num; } */  /* //方法二:最后一位与1&,如果结果是1,二进制中1的个数加1.时间复杂度为log2(v)。 int number(BYTE v){     int num=0;     while(v){         num+=v&0x01;         v=v>>1;     }     return num; } */  //方法三:循环次数等于二进制中1的个数。v&(v-1),每与一次,1的个数减1.时间复杂度为n(m),m为1的个数。  int number(BYTE v){      int num=0;      while(v){          v&=(v-1);          num++;      }      return num;  }

转载地址:http://iokmi.baihongyu.com/

你可能感兴趣的文章
6.PyTorch实现逻辑回归(多分类)
查看>>
8.Pytorch实现5层全连接结构的MNIST(手写数字识别)
查看>>
9.PyTorch实现MNIST(手写数字识别)(2卷积1全连接)
查看>>
hdu 3460 Ancient Printer(trie tree)
查看>>
中间数
查看>>
KMP求前缀函数(next数组)
查看>>
KMP
查看>>
poj 3863Business Center
查看>>
Android编译系统简要介绍和学习计划
查看>>
Android编译系统环境初始化过程分析
查看>>
user2eng 笔记
查看>>
DRM in Android
查看>>
ARC MRC 变换
查看>>
Swift cell的自适应高度
查看>>
【linux】.fuse_hiddenXXXX 文件是如何生成的?
查看>>
【LKM】整合多个LKM为1个
查看>>
【Windows C++】调用powershell上传指定目录下所有文件
查看>>
Java图形界面中单选按钮JRadioButton和按钮Button事件处理
查看>>
小练习 - 排序:冒泡、选择、快排
查看>>
SparkStreaming 如何保证消费Kafka的数据不丢失不重复
查看>>