一、基础算法7:位运算 模板题+算法模板(二进制中1的个数)

news2024/11/15 15:49:53

文章目录

  • 算法模板
    • 求n的第k位数字
    • 返回n的最后一位1
    • 求一个数x的二进制中1的个数模板
  • 模板题
    • 二进制中1的个数
      • 原题链接
      • 题目
      • 题解
  • 补充
    • 输出一个数n的补码x的二进制并按位输出
    • 关于原码,反码,补码

算法模板

求n的第k位数字

n >> k & 1

在这里插入图片描述

返回n的最后一位1

lowbit(n) = n & -n

在这里插入图片描述
在这里插入图片描述

求一个数x的二进制中1的个数模板

		int res = 0;
		while(x){ //当x为0时表示x二进制表示中没有1,否则x二进制表示中还有1 
			x-=lowbit(x); //每次减去二进制中最后一个1 
			res++;
		}
		cout<<res<<" ";

模板题

二进制中1的个数

原题链接

https://www.acwing.com/problem/content/803/

题目

801 . 二进制中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

题解

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int lowbit(int x){
	return x & -x;
	// -x = ~x+1
}

int n;
int main(){
	cin>>n;
	
	int x;
	while(n--){
		cin>>x;
		int res = 0;
		while(x){ //当x为0时表示x二进制表示中没有1,否则x二进制表示中还有1 
			x-=lowbit(x); //每次减去二进制中最后一个1 
			res++;
		}
		cout<<res<<" ";
	}
	return 0;
}

补充

输出一个数n的补码x的二进制并按位输出

在这里插入图片描述

关于原码,反码,补码

在这里插入图片描述
参考文章:原码、反码、补码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS-关联对象(Objective-C)

关联对象关联对象的应用分类中的 property使用关联对象关联对象的实现objc_setAssociatedObjectAssociationsManager如何存储 ObjcAssociationnew_value ! nilnew_value nilsetHasAssociatedObjects()objc_getAssociatedObjectobjc_removeAssociatedObjects写到最后关于应用关…

ESP32设备驱动-VEML6040颜色传感器驱动

VEML6040颜色传感器驱动 文章目录 VEML6040颜色传感器驱动1、VEML6040介绍2、硬件准备3、软件准备4、驱动实现1、VEML6040介绍 VEML6040 颜色传感器可感应红光、绿光、蓝光和白光,并使用 CMOS 工艺将光电二极管、放大器和模拟/数字电路集成到单个芯片中。 通过应用颜色传感器…

【Spring】— Spring基础学习

Spring基础学习一、Spring概述1.什么是Spring2.Spring的下载及目录结构2.1 Spring框架包2.2 第三方依赖包二、控制反转&#xff08;IoC&#xff09;与依赖注入&#xff08;DI&#xff09;1.什么是控制反转&#xff08;IoC&#xff09;2.什么是依赖注入&#xff08;DI&#xff0…

u-view2.0 引入iconfont(阿里字体图标库)详细步骤!

uView已通过大量的实践中&#xff0c;收集了用户最有可能需要用到的图标&#xff0c;见Icon 图标&#xff0c;但我们也相信&#xff0c;它肯定无法覆盖所有的场景和需求。 用户也可以使用标签的方式&#xff0c;自行引入字体图标&#xff0c;为何要通过扩展的方式集成呢&#…

树莓派 ROS 学习(二)小乌龟 turtlesim

添加链接描述 目录 创建catkin工作空间 小乌龟turtlesim节点 启动节点 turtlesim节点 turtlesim 话题与消息 查看话题的消息类型 查看消息类型的具体内容 查看话题的值 改变背景颜色 获取参数列表 获取参数值 修改颜色 控制乌龟运动 通过发布话题控制乌龟运动 通过键盘控制乌龟…

力扣sql中等篇练习(一)

力扣sql中等篇练习(一) 1 第二高的薪水 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT IFNULL((SELECT distinct salary SecondHighestSalaryFROM EmployeeORDER BY salary desclimit 1,1),null ) SecondHighestSalary1.3 运行截图 2 分数排…

【C++】命名空间,缺省参数,函数重载,引用,内联函数,auto 关键字

目录1. 命名空间2. 输入输出3. 缺省参数4. 函数重载为什么C支持函数重载&#xff1f;5. 引用5.1 引用作函数参数&#xff08;输出型参数&#xff09;5.2 作函数的返回值关于函数的返回值&#xff1a;5.3 引用权限关于类型转换&#xff1a;5.4 引用和指针6. 内联函数6.1 C推荐的…

2、在vscode上创建第一个C++多文件编译工程(即如何添加task.json和launch.json文件到工程里面)

文章目录1、新建一个工程目录2、在vscode打开刚建立的工程目录&#xff0c;建立cpp文件3、设置C/C编译的选项:c_cpp_properties.json&#xff08;1&#xff09;鼠标点在.c的源文件内部&#xff0c;按 CtrlShiftp 快捷键&#xff0c;在弹出的界面中选择: [C/C:编配置(UI)]&#…

RK3568平台开发系列讲解(Linux系统篇)Linux 内部的全景图

🚀返回专栏总目录 文章目录 一、Linus 是谁二、Linux 内核全景图三、漫画:Linux 内核都有啥沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们一起认识这样一个计算机黑客,看看他是怎样创造出影响世界的 Linux,然后进一步了解一下 Linux 的内部结构。 一、…

从0学习stm32第二天

1.存储器结构 程序存存储器&#xff0c;数据存储器&#xff0c;寄存器和输入输出端口&#xff0c;被组织在同一个4G的线性地址空间中&#xff1b; 可以通过地址的方法访问对应的存储器或寄存器&#xff1b; 比如 0X12 34 56 78在内存中存储 低地址----------------------…

vue3组合式API和vite+ts

创建项目 npm create vitelatest . 选择ts版本 直接安装依赖项目启动 vite项目配置路径 cnpm i --save-dev types/node 让ts项目支持node环境 vite构建工具中配置了路径加载组件 import HelloWorld from "/components/HelloWorld.vue"; 界面显示正常 引入文件路径报错…

STM32嵌入式面试知识点总结

一、STM32F1和F4的区别&#xff1f; 解答&#xff1a; 参看&#xff1a;STM32开发 – STM32初识 内核不同&#xff1a;F1是Cortex-M3内核&#xff0c;F4是Cortex-M4内核&#xff1b; 主频不同&#xff1a;F1主频72MHz&#xff0c;F4主频168MHz&#xff1b; 浮点运算&#xff…

midjourney入口是什么?怎么使用midjourney

最近有很多小伙伴在咨询我midjourney的事情&#xff0c;因为他们看过midjourney的神奇能力&#xff0c;忍不住想玩一下&#xff0c;都在问midjourney要去哪里玩&#xff1f;midjourney入口是什么&#xff1f;小编觉得今天有必要来给大家详细的说说。 一.midjourney是什么 Midj…

Kafka消息发送流程

消息发送高阶用法 自定义拦截器 自定义序列化 自定义分区器 核心参数 https://kafka.apache.org/0110/documentation.html 参数名描述默认值bootstrap.servers格式为host1:port1,host2:port2,…key.serializervalue.serializerretries0retry.backoff.ms上次发送失败&…

【数据结构与算法】快速排序的非递归实现方法

目录 一.前言 二.非递归实现 一.前言 如果数据量过大的话&#xff0c;不断递归就会出现栈溢出的现象&#xff0c;这个时候你的代码是没问题的&#xff0c;但就是跑不起来&#xff0c;这个时候就要把递归改成非递归。 一般有两种改法&#xff1a; 1.直接改&#xff0c;利用循环…

Kafka---Kafka安装(单机版)

Kafka安装&#xff08;单机版&#xff09; 文章目录Kafka安装&#xff08;单机版&#xff09;上传压缩包解压更名配置文件修改myid启动zookeeper启动kafka创建topic查看消息队列查看消息队列详情生产消息消费消息查询指定对列消息数量上传压缩包 将压缩包上传到/opt/install …

Spring —— Spring Boot 日志文件

JavaEE传送门JavaEE Spring —— Spring Boot 创建和使用 Spring —— Spring Boot 配置文件 目录Spring Boot 日志文件Spring Boot 使用日志得到日志对象使用日志对象打印日志日志级别日志级别作用日志级别的分类日志级别设置日志持久化更简单的日志输出 (lombok)Spring Boo…

全网最详细,Jmeter性能测试-性能进阶, 数据驱动将融入性能测试(五)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 本节或者后面都可能…

【汇总版】计算机组成原理思维导图

目录导读与总结汇总思维导图导读与总结 这是一份涵盖计算机组成原理基础知识的思维导图&#xff0c;它包括计算机系统的层次结构、指令和指令执行、CPU的组成和工作原理、存储器的层次结构和管理、输入输出设备的原理和接口、以及汇编语言的基础知识。通过这份思维导图&#x…

Zookeeper源码分析——ZK服务端初始化源码解析

持久化源码 快照 public interface SnapShot {/*** deserialize a data tree from the last valid snapshot and * return the last zxid that was deserialized* 反序列化方法*/long deserialize(DataTree dt, Map<Long, Integer> sessions) throws IOException;/*** …