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

C++ 位运算常用操作 二进制中1的个数

给定一个长度为 n
的数列,请你求出数列中每个数的二进制表示中 1
的个数。

输入格式
第一行包含整数 n

第二行包含 n
个整数,表示整个数列。

输出格式
共一行,包含 n
个整数,其中的第 i
个数表示数列中的第 i
个数的二进制表示中 1
的个数。

数据范围
1≤n≤100000
,
0≤数列中元素的值≤109
输入样例:
5
1 2 3 4 5
输出样例:
1 1 2 1 2

(1)求n的二进制数表示中第k位是几?
n >> k & 1

在这里插入图片描述
(2)lowbit操作:返回x的最后一位1(返回是一个二进制数)
x & -x

在这里插入图片描述
计算过程:
在这里插入图片描述

#include <iostream>using namespace std;int n;int main ()
{scanf("%d", &n);while(n -- ){int x;scanf("%d", &x);int res = 0;while(x) {if(x & 1) res ++; // 取x最后一位x = x >> 1; // x 右移一位// lowbit写法// x -= (x & -x); // (x & -x) 就是lowbit操作,每次减去最后一个1,然后res++,减了多少次就有多少个1,比上面那种稍微快一点//res ++;}printf("%d ", res);}return 0;
}
http://www.lryc.cn/news/302293.html

相关文章:

  • 大数据领域的数据仓库
  • sentinel的资源数据指标是如何采集
  • 算法刷题:找到字符串中所有的字母异位词
  • 【Java EE初阶十九】网络原理(四)
  • 12.23 校招 实习 内推 面经
  • FPGA转行ISP的探索之一:行业概览
  • Linux系统之部署网页小游戏合集网站
  • 【白嫖8k买的机构vip教程】python(2):python_re模块
  • 【CSS】display:flex和display: inline-flex区别
  • rpm安装gitlab
  • 图论之dfs与bfs的练习
  • Vue练习5:图片的引入
  • SpringBoot+Kafka
  • 世界顶级名校计算机专业,都在用哪些书当教材?(文末送书)
  • 蓝桥杯刷题--python-8(2023 填空题)
  • Eclipse - Reset Perspective
  • 1.5v的电池电压低于多少v等于没电
  • LabVIEW智能监测系统
  • 代码随想录刷题第34天
  • AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出
  • 14. Qt 程序菜单实现,基于QMainWindow
  • 如何利用SpringSecurity进行认证与授权
  • 如何简单上手清华AutoGPT并搭建到本地环境
  • 【漏洞复现-通达OA】通达OA share存在前台SQL注入漏洞
  • HTML5 Canvas与JavaScript携手绘制动态星空背景
  • 如何优雅地与ChatGPT对话?
  • AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】
  • 量子算法入门——3.狄拉克符号与量子态(3)
  • c++ STL系列——(三)list
  • 软考29-上午题-排序