当前位置: 首页 > news >正文

[蓝桥杯习题]———位运算、判断二进制1个数

在这里插入图片描述

⭐Hello!这里是欧_aita的博客。
⭐今日语录:行动胜过一切。
⭐个人主页:欧_aita
ψ(._. )>⭐个人专栏:
数据结构与算法(内含蓝桥杯习题)
MySQL数据库

在这里插入图片描述

在这里插入图片描述

位运算

  • 位运算
    • 位运算的定义
    • 简单运用
  • 实战刷题
    • 题目
    • 思路
    • 代码实现
      • 声明
      • 减1过程

位运算

位运算的定义

位运算是指在二进制位级别上对数据进行操作的一种计算机运算方式。这种运算通常直接操作二进制位,通过一组针对位的操作符来完成。在许多计算机体系结构中,位运算是高效的,因为它们可以直接映射到底层的处理器指令。

简单运用

输出一个数的二进制表达数字。需要注意(n >> i & 1)是按照比特为单位进行位移的。

#include<iostream>
using namespace std;int main()
{int n=10;for(int i=3;i>=0;i--)cout<<( n >> i & 1);return 0;
}

在这里插入图片描述

实战刷题

题目

任给一个数,求二进制数中1的个数?

思路

可以使用位运算的方法,在学习计算机基础时,我们就学过一个正数的补码+1就是该数的负数。所以将要求的数&上此数的负数,得出来的结果再减一遍,直到减到0为止,此过程使用一个res计数器计数,最后的res就是结果。

话不多说,上图解
在这里插入图片描述
这样每次都是从右向左寻找1。

代码实现

声明

#include <iostream>
using  namespace std;

减1过程

int lowbit(int x)
{return x & -x;
}int main()
{int n;cin>>n;while(n--){int m;int res=0;cin>>m;while(m)m -= lowbit(m);res++;}return 0;
}

最后输出的res就是1的个数。
这篇文章就到此结束了,如果对你有所帮助,就留下你的赞吧!
在这里插入图片描述

http://www.lryc.cn/news/249452.html

相关文章:

  • 3DCAT为华东师大设计学院打造元宇宙数字虚拟学院
  • AIGC 3D即将爆发,混合显示成为产业数字化的生产力平台
  • 时间序列预测实战(二十一)PyTorch实现TCN卷积进行时间序列预测(专为新手编写的自研架构)
  • 探索计算机视觉:深度学习与图像识别的融合
  • 屏蔽WordPress评论中长URL地址方法
  • 【教程】 一文部署配置并入门 Redis
  • 数据被锁住了?如何应对.mkp病毒的攻击
  • 【Shell】Shell基础学习
  • python文件读取
  • 第16关 革新云计算:如何利用弹性容器与托管K8S实现极速服务POD扩缩容
  • 算法通关村第十二关|黄金挑战|最长公共前缀字符串压缩
  • 池式组件 ----- Mysql连接池的原理实现
  • 1.自动化运维工具Ansible的安装
  • [个人笔记] Apache2.4配置TLS1.3安装openssl1.1.1
  • 解密Kafka主题的分区策略:提升实时数据处理的关键
  • GPT5大剧第二季开启,Sam Altman 重掌 OpenAI CEO 大权
  • Selenium 连接到现有的 Google Chrome 示例
  • EI级 | Matlab实现TCN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测
  • 基于安卓的2048益智游戏的设计与实现
  • 解决Linux Visual Studio Code显示字体有问题/Liunx下Visual Studio Code更换字体
  • CityEngine2023 根据shp数据构建三维模型并导入UE5
  • 修复电脑中缺失的VCRUNTIME140.dll文件的5个有效方法
  • 什么是PDN的交流阻抗?
  • FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(一)
  • Web安全漏洞分析-XSS(上)
  • MVCC多版本并发控制相关面试题整理
  • 02-鸿蒙学习之4.0todoList练习
  • springsecurity5.7.x和springsecurity6.x配置文件对比
  • brat文本标注工具——安装
  • 麒麟操作系统网桥配置