求二进制数中1的个数

二进制数中1的个数统计 题目是力扣的题:191. 位1的个数 解题思路 官方的解法是用位掩码左移,而我的方法是用原数右移。看起来好像都差不多,但是要注意一点,我这里用了两个计数器,为什么这样? 当验证的数的值大于等于2^32的时候,这个时候数的最高位是1,如果用>>,那么进制运算默认认为是有符号数的运算,右移会导致,最高位添1,所以一定要设置第二个计数器,来防止新添的1进入判断 可以只用一个计数吗? 当然可以,只不过大家要知道无符号数右移也就是>>>,判断条件就只要判断原数是否为0了。 代码 pub 阅读详情

来自《编程之美》


             以10100001来举例。如果只考虑和1的个数相关,那么,我们能否在每次判断中,仅与1来进行判断呢?为了简化问题,我们考虑只有一个1的情况。例如:01000000。

如何判断给定二进制数里面有且仅有一个1呢?可以通过判断这个数是否是2的整数次幂来实现。另外,如果只和这一个“1”进行判断,如何设计操作呢?我们知道,如果进行这个操作,结果为0或1,就可以得到结论。

如果希望操作后的结果是0,01000000可以和00111111进行“与”操作。

这样,要进行的操作就是01000000&(01000000-00000001)=01000000&00111111=0

int Count(BYTE v){
    int num=0;
    while(v){
        v &= (v-1);
        num++;
    }
}

另外,该段代码稍作变形就可以求二进制最高位的位置。

求二进制数中1的个数(编程之美) 求二进制数中1的个数继京东618店庆时买的《编程之美》这本书,翻了翻,发现里面的题还是挺有意思的,看起来我们觉得很简单的题目,解法却有很多很多种,真是一个比一个巧妙,于是,决定记录一下。书中的题目如下 对于一个字节(8bit)的无符号数,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。 阅读详情

相关推荐

C#.NET斗地主服务端核心架构与高性能实现

斗地主作为典型的实时对战棋牌逻辑,本质是状态驱动的分布式协同问题。其技术内核涵盖有限状态机建模、低延迟网络同步、无GC内存操作与轻量级AI决策等关键能力。在.NET平台下,借助Span<T>、ImmutableArray、命令/事件总线与内存池等特性,可构建出高吞吐(200+ QPS)、低延迟(<150ms)、强一致的可落地服务端。本文聚焦C#.NET生态中斗地主核心模块的设计取舍与压测验证,深入解析状态机驱动、CardSet结构体优化、Kestrel中间件锁、规则+概率混合AI等实战方案,为实时对战类业务

weixin_29726381的博客 345

统计二进制中1的个数

要求:写一个函数返回参数二进制中 1 的个数。 比如: 150000 11114 个 1 一.除二判断法 第一种方法比较简单,就是把这个数除以二,判断是否为1,满足条件,就加1;然后在除以2,(如果是10进制的话除以10,2进制除以2); int num(unsigned int i) { int count = 0; while (i) { if (i % 2 == 1) { count++; } i = i / 2; } return count...

dream_wl的博客 1010

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 408

统计整数二进制中1的个数

方法一 def count(num): cnt = 0 while num: if num & 1 == 1: cnt += 1 num = num >> 1 return cnt count(7) # 3 优点:简单明了,通过不断移位,统计二进制中一的个数。 缺点:当参数为负数,程序会陷入死循环。 因为在其他语言中,负数在计算机中是用补码表示的,最高位是1,在右移的过程中,高位都是用1来填补的,所

小白一直白 872

RGB接口电容触摸屏驱动(一)模块介绍

RGB接口电容触摸屏驱动(一)模块介绍

杰克拉力船长个人博客 7876

小论文/大论文必备| YOLO26热力图可视化,支持8种常用热力图方法:GradCAM,GradCAMPlusPlus,XGradCAM,EigenCAM,HiResCAM等,助力小论文和大论文加分

本文介绍了如何为YOLO26模型添加热力图可视化功能,包括完整代码和使用教程。热力图能增强模型的可解释性,适用于论文中的实验对比和结果展示。文章提供了详细的代码实现,包含图像处理、热力图生成和结果可视化等功能,并指导用户如何创建Python文件、粘贴代码以及调整参数生成最佳热力图。通过设置不同层号,用户可以灵活控制热力图效果,最终结果将保存在指定文件夹中。

Ai缝合怪、助力小伙伴高效发论文 492

统计二进制中1的个数(三种写法)

统计二进制中1的个数 题目要求 写一个函数返回参数二进制中1的个数。 //比如:15 00001111 4个1 首先,我们知道求十进制中的每一位数,是拿那个十进制数模10(%10),拿出最后一位. 那么,同理,二进制的每一位数,自然也可以通过二进制数模2(%2),每拿出一位判断. 因此这是第一种方法,也是最容易想到的一种,我也只能想到这一种:( int sumone_first(unsigned int n)//这里是无符号数,因为要考虑负数的存在,如果写int,那么负数,例如-1,则会变成0. {

wfy17030212的博客 2318

使用机器学习算法预测黄金价格

在本文中,我们将使用线性回归、XGBoost和LSTM这三种不同的机器学习算法来预测黄金价格。接下来,我们使用线性回归、XGBoost和LSTM分别建立了模型,并进行了训练和预测。这些机器学习算法可以帮助我们对黄金价格进行预测,但请注意,市场价格受多种因素影响,因此预测结果可能并不完全准确。接下来,我们需要对数据进行一些预处理,以便用于机器学习模型的训练和测试。我们将使用80%的数据作为训练集,20%的数据作为测试集。最后,我们将绘制每个模型的预测结果,并将其与实际价格进行比较,以评估模型的性能。

QromMatlab的博客 1316

统计二进制中 1 的个数

统计二进制中 1 的个数

m0_51747922的博客 2259

Hermes 教程 03:Skills 系统

摘要:Hermes Skills是一种自我改进机制,可将解决问题的经验保存为可复用技能文档。v0.13.0版本遵循agentskills.io开放标准,与Claude Skills互通。技能创建流程包括发现问题、创建技能文件、加载使用和优化更新四个阶段。系统提供技能检索和自维护机制(Curator),支持技能媒体路由和多种管理命令。内置技能涵盖开发调试、创意头脑风暴等场景,通过积累技能使Hermes更适应用户需求。

程序猿_三产 728

基于YOLOv8的应急通道占用监测系统设计与实现

通过详细的数据集选择、模型训练、代码实现等内容,本博客为您提供完整的系统搭建过程,帮助您构建高效的监测系统。然而,在一些建筑物和公共场所中,应急通道经常被不当占用,导致紧急情况下无法及时使用,严重影响人员的疏散效率。YOLOv8是YOLO系列中的最新版本,它通过引入深度学习的优化和改进,在保证检测速度的同时,显著提升了检测精度。同时,随着深度学习技术的不断发展,检测精度与速度的提升将使得该系统在更广泛的场景中应用。:如果已有监控设备,可以采集应急通道的实时视频,并进行标注,生成占用监测数据集。

YOLO 797

求二进制数中1的个数。

求二进制数中1的个数。 解法1:对于二进制操作,除以一个2,如果除的过程中有余,那么就表示当前位置有一个1。考虑利用整型数据除法的特点,通过相除和判断余数的值来分析。 int Count ( BYTE v ) { int num = 0; while(v) { if(v%2 == 1) num++; v = v/2; } return num; } 解法2:对解法1进行改

我的读书笔记(2011-2013) 1062

【深度学习新浪潮】什么是system 1和system 2?

System 1(快速生成)指大模型直接基于输入生成响应,无需显式中间推理步骤。例如,GPT-4等模型在默认状态下通过Transformer直接输出结果,擅长快速回答简单问题或生成连贯文本,但在复杂逻辑任务中可能出错。这类模型的内部计算以向量形式隐式进行,难以处理符号推理等需要离散决策的任务。System 2(慢速推理)指模型通过生成中间token(如思维链、分步推导)或多次调用LLM进行复杂推理。

专注:太空算力、AI infra、异构调度、大模型成本工程 928

如何求二进制数中1的个数

题目描述:   给定一个数,输出这个整数的二进制中1的个数。 分析: 方法一:移位法   可以使用位来操作来完成。首先,判断这个数的最后一位是否位1,如果为1,则计数器加1.然后,通过右移丢弃掉最后一位,循环执行该操作直到这个数等于0为止。在噢安段二进制表示的最后一位是否为1时,可以采用“与”运算来到达这个目的。 实现代码: package lock; public class T19 { /*判断n二进制码中1的个数*/ public static int countOne(int n) {

路在前方 552

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

求二进制数中 1 的个数

对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。

林风专栏 877

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: Linux From Scratch v7.0中文版
下一篇: 换个角度看LFS——反向分析LFS
qjpcpu
博客等级 码龄15年 59粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值