二进制中1的个数

整数的二进制表示中1的个数 给出通常能想到的方式,这两种方式在《C和指针》一书中给出。以下讨论的均为非负整数。 /* 该方法每次在循环中判断数的二进制最右一位是否为1(如果该数能不能被2整除)。 每次循环后该数右移一位。因此遍历了数的二进制表示的每一位。 */ int count_one_bits1(int value) { int count; for (count = 0; value != 0; value 阅读详情

解法一:

class Solution {
public:
     int  NumberOf1(int n) {
         int i = 0;
         int sum = 0;
         
         while (i < 32)
         {
             if (n&(1 << i))
                 sum++;
             i++;
         }
         return sum;
         
     }
};

解法二:

class Solution {
public:
     int  NumberOf1(int n) {
         
         int flag = 1;
         int sum = 0;
         
         while (flag)
         {
             if (n & flag)
                 sum++;
             flag = flag << 1;
         }
         return sum;
     }
};

 

解法三:

1)把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中最右边的1变成0.

2)0只有一个补码0000 0000,如果是这样,1000 0000就不会表示成-0的补码

     补码1000 0000唯一的表示-128

    在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个.

class Solution {
public:
     int  NumberOf1(int n) {
         int sum = 0;
         
         while (n)
         {
             n = n & (n-1);
             sum++;
         }
         return sum;
     }
};
快速统计二进制中1的个数 分析篇 阅读详情

相关推荐

汇编统计1的个数(二进制)

汇编实现统计输入数据中1的个数,转换为二进制判断

汇编程序:统计一个字的二进制表示中1的个数

                                                  统计一个十六位字中1的个数的汇编小程序思路:利用逻辑左移指令shl的功能:                  如 shl ax, 1  将ax中的最高位放在psw中CF中,然后,将其余的位依次左移一位,最后一位用0填充。                 该字为16位,逻辑左移16

wzb56的资料库 1万+

Camera Sensor接口协议全解析(六)聚焦onsemi HiSPi接口的技术突破与应用实践

摘要: Onsemi HiSPi是一种高速并行接口协议,专为高分辨率图像传感器设计,具备1600 Mbps传输速率、低功耗和高兼容性特点。通过对比DVP、MIPI CSI-2等主流协议,HiSPi在工业/医疗领域表现突出,支持动态功耗控制、多ROI和CRC校验。其创新架构包含多PHY设计,提供分组SP、流SP等多种工作模式,满足灵活传输需求。实际应用中,HiSPi在PCB缺陷检测(5μm精度)和液晶面板检测(0.3% Mura检出率)等场景展现卓越性能,成为高速成像领域的关键技术。

GateWorld的博客 1435

求二进制数中1的个数

题目描述 给定一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 方法一:直觉法。完全凭直觉。 int BitCount(unsigned int n) { unsigned int c =0 ; // 计数器 while (n >0) { if((n &1) ==1) // 当前位是1 ++c ; // 计数

五月花 744

PID控制参数整定(调节方法)原理+图示+MATLAB调试

序 首先最重要的是了解每个参数调节了系统响应的那些属性,通过观察响应从而调节参数改变属性。 PID的作用概述: 1、P产生响应速度和力度,过小响应慢,过大会产生振荡,是I和D的基础。 2、I在有系统误差和外力作用时消除偏差、提高精度,同时也会增加响应速度,产生过冲,过大会产生振荡。 3、D抑制过冲和振荡,过小系统会过冲,过大会减慢响应速度。D的另外一个作用是抵抗外界的突发干扰,阻止系统的突变。 同时调节的顺序是:P>I>D 下面了解的一个很重要的就是调节的目标,也就是最好的响应曲线.

viafcccy的博客 16万+

如何让Arduino IDE支持你手里的STM32 nucleo开发板

Arduino IDE开发环境在默认情况下不支持STM32 NUCLEO开发板,只有通过添加附加开发板管理包才能使用。目前为止,只有一部分板子支持使用Arduino IDE开发环境进行开发,分别是 Nucleo F207ZG, Nucleo F429ZI, Nucleo F030R8, Nucleo F091RC, Nucleo F103RB, Nucleo F303RE, Nucl...

mzw72188552的专栏 8972

二进制数中1的个数

求一个正整数对应二进制数中1的个数 #include #include using namespace std; //求一个正整数的二进制数中有多少个1 int binar(int num) { int sum = 0; while(num>0) { if(num & 1) { sum++; } num >>= 1; } return sum; } int

dongyanxia1000的专栏 462

Cadence 16.6与17.4双版本共存避坑指南:从安装顺序到环境变量配置

本文是一份详细的Cadence 16.6与17.4双版本共存实战指南。针对硬件工程师和PCB设计者同时处理新旧项目的需求,文章深入剖析了版本冲突根源,并提供了从安装顺序、环境隔离到故障排查的完整解决方案。核心在于通过环境变量精细化管理与脚本控制,实现两个版本的稳定共存与无缝切换,有效解决了文件关联混乱、交互布局失效等常见问题。

html8的博客 977

统计二进制中 1 的个数

统计二进制中 1 的个数

m0_51747922的博客 2259

风力发电机并网模型建立及仿真验证

传统能源日益匮乏,环境污染日趋严重,全球向安全、可靠和环保的可持续能源体系转型迫在眉睫,风电迎来了重要的发展契机。近年来,全球风电迅猛发展,我国已成为世界风电新增装机容量第一的国家。然而,随着风电规模的不断增大,风电场接入对系统影响不容忽视。随着变速恒频风力发电系统优越的性能突出和大容量电力电子技术的成熟,风速随机性引起的功率波动及故障情况下的动态响应,对电能质量,系统电压、频率的稳定性产生的影响需要深入研究。因而,本文结合实际项目,针对变速恒频风力发电系统建模,端口动态特性及对电网电能质量、运行稳定性的影

毕业设计区博客 1639

内网渗透(二)之基础知识-工作组介绍

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都 列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1219

计算一个数的二进制的1的个数

三种计算一个数的二进制中1的个数的方法

talk less, code more 1409

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2169

整数二进制中1的个数

要统计一个整数二进制中1的个数,首先我们会想到最简单的方法就是 % 2 再 / 2,然后判断每一位是否为1。 但是,如果这是一个很大的数,频繁的除法运算效率不是很高。而位运算比乘除法效率高,所以我们就来用位运算解决这道题。 首先方法一,当num大于0时,判断num & 1 的值,即可知道最后一位的值,循环每次num右移一位,即可完成目标。 然后方法二,num & 0x55555555 + ((num >> 1) & 0x55555555) 5的二进制为0101,按位与可

Mmonster23的博客 566

【YOLOv8科研级优化】集成YOLOv10的SCDown采样模块,让你的模型下采样更高效更精准

打开确保模型解析器能识别SCDown模块。通过将YOLOv10的SCDown模块集成到YOLOv8中,我们实现了一个“细节保留+高效下采样”的目标检测模型。这个改进不仅在工程上能提升小目标、细粒度场景的检测效果,更在科研上提供了“分阶段下采样”的创新思路——这种思路可以延伸到其他卷积网络(如ResNet、MobileNet)的下采样层改进中,帮你在论文中打造独特的研究点。

m0_71589036的博客 137

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

二进制中 1 的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:本人的第一个想法就是 整数直接求二进制,然后统计1的个数;负数就直接求对应正数的二进制,在8位的基础上计算 除符号位外 其他位取反,而后二进制+1,最后统计1的个数。(是不是很繁琐) 知识补充:在计算机中,负数是以补码存储的。负数的补码:计算对应整数的二进制,由于整数为8位,第一位为1 ,其余用0补齐8位。然后除第...

qq_36167072的博客 191

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

二进制数1的个数及两二进制数异或后1的个数的奇偶

二进制数1的个数 判断二进制数1的个数,通过x &= x-1来不断消掉x的最右面的一位1,通过消除次数判断x的1的个数 例如x=0100,则x-1=0011,(x &= x-1) =0000,所以x中的1的个数为1 int onescount(int x){ int cnt = 0; while(x){ cnt++; x &= x-1; }...

Tan_JX 883

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode–二进制中1的个数

LeetCode–二进制中1的个数 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 15. 二进制中1的个数 主站 191 题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串

归子莫的博客 1118

[模板题]二进制中1的个数

来源:模板题 算法标签:位运算 题目描述: 给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。 输入格式 第一行包含整数n。 第二行包含n个整数,表示整个数列。 输出格式 共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中1的个数。 数据范围 1≤n≤100000, 0≤数列中元素的值≤109 输入样例: 5 1 2 3 4 5 输出样例: 1 1 2...

代码中枢:软件工程理论与实践的桥梁 589

求二进制中1的个数

传统的求二进制中1的个数的方法就不说了,复杂度为O(logx),x为要求的数,即要遍历所有的位数做统计。 看一个效率较高的算法。 intcount(intx) { intnum=0; while(x) { num+=x&0x01; x&gt...

cieryl23146的博客 144
上一篇: Linux 平台 gcc 和动态共享库的基础知识
下一篇: 不用加减乘除做加法
Maybe______
博客等级 码龄10年 26粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值