求bit中1的个数有几种做法

统计一个字符串中bit为1的个数 今天遇到的一个问题,感觉自己的代码效率不高 编写一个函数,实现统计一个字符串中bit为1的个数#include <stdio.h> int str_bit_count(char * p) { int count = 0,sum = 0; int n = 0; while((*p) != '\0') { n = *p; for(count 阅读详情

原文

求bit中1的个数有几种做法:

- x & (x - 1)
- Hamming weight的经典求法,基于树状累加:http://en.wikipedia.org/wiki/Hamming_weight
- 内存足够大可以查表得;


int  bitCount(unsigned  int  u) {
    unsigned  int  uCount;
  
    uCount = u - ((u >> 1) & 033333333333) - ((u >> 2) & 011111111111);
    return  ((uCount + (uCount >> 3)) & 030707070707) % 63;
}
【IC设计】求一个32bits数据中1的个数 求一个32bits数据中1的个数 阅读详情

相关推荐

32bit的无符号数字中1的个数

swar算法 uint32_t swar(uint32_t i){ i = (i & 0x55555555) + ((i>>1) & 0x55555555); // 步骤1 i = (i & 0x33333333) + ((i>>2) & 0x33333333); // 步骤2 i = (i & 0x0F0F0F0F) + ((i>>4) & 0x0F0F0F0F); // 步骤3 i

wangkai6666的博客 1539

IC设计基础003:Verilog计算1的数量

采用for循环语句,逐个bit位判断是否为1,为1则累加,否则保持不变,最终输出输入信号中1的数量。如下所示,采用循环语句+移位+逻辑与1+累加来实现1的统计。最终调用函数获得输入信号中1的数量。

IC小鸽的博客 4881

【编程之美】任意给定一个32位无符号整数n,求n的二进制表示中1的个数

任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,我今天就遇到了,当时懵了。现在想想多简单,浪费了一次机会。 1.普通法 这种方法最简单,就是通过移位+计数。首先把n于1相&,如果结果==1,说明最后一位是1,计数器+1;然后右移一位,最后一位

hllyyy的专栏【Nothing replaces hard work】 8491

计算变量中有多少个bit位是1的方法

在工作中经常遇到如下问题:任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 0x05(0b0101)时,返回2,n = 0x8e(0b1000 1110)时,返回4。下面给出几种常用的解法,在文章的最后给出这几种方法的对比结果。 方法一:基础法 基础法最容易理解,直接遍历每一位,代码如下,两种方法的思路是一样的,只是第一种方法必须循环32次,而第二种方法可能会提前结束循...

Dokin 1万+

实验四——DPCM编码(1bit、2bit、4bit、8bit量化)

一.实验要求 本实验的目标是验证DPCM编码的编码效率。首先读取一个256级的灰度图像,采用自己设定的预测方法计算预测误差(本次实验报告使用左向预测),并对预测误差进行8比特均匀量化(基本要求)。还可对预测误差进行1比特、2比特和4比特的量化设计(提高要求)。 在DPCM编码器实现的过程中可同时输出预测误差图像和重建图像。将预测误差图像写入文件并将该文件输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。将原始图像文件输入Huffman编码器,得到输出码流、给出概率分布图并计算压缩比。.

weixin_52189060的博客 5302

第四届“网鼎杯”网络安全大赛 - 青龙组

第四届“网鼎杯”网络安全大赛 - 青龙组

lpppp小公主的博客 1313

统计二进制中比特1的个数

这样从后往前,依次将1置为0同时result+1,最终n为0时,得出result表示共有多少个1。通过这种方式计算非常快,最差时间复杂度为o(n),且仅有减法和与操作这种简单的操作。正数可以得到正确的比特1的数量,负数得到的是。

qq_55796594的博客 904

手把手教你解决Ubuntu 20.04虚拟机桥接模式下的网络问题:DHCP与静态IP配置全指南

本文详细解析了Ubuntu 20.04虚拟机在桥接模式下的网络配置问题,包括DHCP与静态IP的配置方法及常见故障排查技巧。通过深入讲解桥接模式原理和提供实战操作指南,帮助用户解决无法访问外网、ping不通等典型网络问题,实现虚拟机与物理网络的无缝连接。

weixin_29256771的博客 542

C语言笔记:位运算问题

文章目录位运算简介常见的位运算符(运算符优先级按表下到上依次增高,如~为最高优先级)位运算实例1、给定一个整数a,设置a的二进制表示中bit5为1,其它位不变 位运算简介 C语言中的各种运算都是以字节的形式进行,在编写很多系统程序时,如驱动程序、磁盘文件管理程序等,常要求将数据按位(bit)进行运算或者处理。计算机中的数据(不管是整型,浮点型,还是字符型)在内存中都是以二进制的形式进行存储的,位运...

weixin_42124234的博客 3245

PDF与OFD电子发票解析技术实战:从格式转换到精准识别

本文深入探讨了PDF与OFD电子发票解析技术的实战应用,从格式转换到精准识别,提供了全面的解决方案。通过OFD转PDF技术、动态定位算法和多重校验机制,显著提升电子发票识别效率与准确率,助力企业财务数字化转型。

weixin_42565652的博客 164

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 898

计算bit位为1的个数

【转载:https://blog.youkuaiyun.com/keep_moving_gogogo/article/details/38078431】 1.循环法(Iterated Count) int bitcount (unsigned int n) { int count=0;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&a

zilin-lynn的博客 7644

uniapp [移动端H5网页] - 强力解决弹起软键盘后页面被挤压变形或页面整体上移问题,点击input输入框键盘弹出底部被上推往上顶遮挡及各种问题(兼容安卓苹果ios手机,微信公众号网页也适用)

uni-app,h5网页,input输入框组件,uniapp h5软键盘弹出,uni-app 输入框,键盘弹起时页面整体上移问题,uni,H5页面,解决软键盘弹起页面被挤压、被往顶的问题,解决uni-app 输入框,键盘弹起时页面整体上移问题,uniapp调用手机系统软键盘,页面窗口被顶起,布局定位失效,解决uniapp软键盘弹起导致页面fixed定位元素被顶上去,输入法软键盘弹起,窗口顶起,变形解决办法,UniApp中input组件在IOS设备上弹出软键盘时页面整体上移问题的解决方案,以及input组件聚

🏆 前端领域优质创作者 1万+

计算一个无符整数中1Bit的个数

计算一个无符整数中1Bit的个数 原创整理,转载请注明出处。 这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现有的算法,然后再讲解一些 改进 算法。 1.循环法(Iterated Count ) int bitcount (unsigne...

aezympxj84131的博客 357

LabVIEW进行MQTT通信及数据解析

该文章介绍了LabVIEW的MQTT通信的开源VI控制,以及如果进行数据的解析,特别是一些需要注意的点

heda3的博客 4105

英飞凌Tricore问题排查01_Det/Reset/Trap排查宝典

软件跑飞进Det或发生Reset或进Trap了,怎么查?有固定套路可以follow吗?英飞凌Tricore又有哪些专门的定位办法?本篇为您娓娓道来。

initiallizer的博客 4416

一些有关C++语言中的bit操作

Author:Jeff    2005-11-30关键字:C/C++  bit  位操作 以下大多从网上和书中来,有些则加入了个人的见解~~1)  函数实现交换两个int型变量的值,要求不定义任何中间变量。C / C++ 版:void Swap(int *a, int *b){*a^=*b;   *b^=*a;   *a^=*b;}C++ 版:void Swap(int &a, int &b){a

dreamXren的专栏 7942

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

求1的个数问题

     《编程之美》中有一个求1出现次数的问题,给定一个十进制正整数N,写下从1到N的所有正整数,然后数一下其中1出现的次数;如果将这个问题稍微改变一下,要求数一下其中含有1的数字的个数;比如N=12,f(N)=4,(1, 10, 11, 12) 看起来问题基本一样,但实际上两者还是有很大的不同的,改变后的问题应该说是一个排列组合问题;  这里给出一种解法:首先现将问题转化为

sparkliang的专栏 2297

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

统计bit为1的个数

某些场景下,需要统计一段数据中,所有bit为1的的总个数,以下为。

lang2018的专栏 214

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

几种求32位数中1的个数的算法

方法一:最简单的循环位运算 int count1(int i) { int num=0; while(i!=0) { num += i & 0x01; i >>>= 1; } return num; } 时间复杂度是O(n),且n一定是32。 方法二:n&(n-1) int co...

请你吃王中王博客 4549

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

求一个整数中bit位为1的个数

#include <stdio.h> int get_bit1_cnt(unsigned int x) { int n = 0; while (x) { n += ((x & 0x1)? 1 : 0); x = x>>0x1; } return n; } int get_bit1_cnt_test(unsigned int x) {...

qingfengjuechen的专栏 1273

计算一个无符整数中1Bit的个数(1)

Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)计算一个无符号整数中有多少的Bit为1原创整理,转载请注明出处。这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现有的算法,然后再讲解一些改进算法。 1.循环法(It

DX 2387

按位与&的巧算:《统计二进制中1的个数》《求两个数二进制中不同位的个数》

按位与&的巧算:《统计二进制中1的个数》《求两个数二进制中不同位的个数》

etamaos的博客 830

C语言求整数二进制1的个数 图解

思路:将m和n异或^一下,相同为0,相异为1;表达式有多少个1,就有多少位不同;n&(n - 1),与了几次表达式,就有几个1,直到表达式为0。n & (n - 1) 与完之后,唯一一个1没有了,表达式就是0,这个数就是2的K次方。num & (num - 1) 其实还有一些难以想到的用处~思考能不能优化,如果是求-1内存中1的个数必须循环32次。while (n), n为0时,0为假退出循环。2的k次方数字,2进制的表示中只有一个1。但是这个方法有什么缺点?今天的讲解到此结束~

2403_86817821的博客 462
上一篇: Parentheses Sequence微软编程笔试
下一篇: Mysql笔记
Vanguard-xf
博客等级 码龄12年 40粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值