2.22 位运算

news2024/11/28 8:26:35

位运算

预备知识
首先注意二进制位数从0开始记录,即
15=(1111),位数分别为3210
左移和右移
左移 << 将某个数的二进制向左移动几位,低位补0
5>>2 即20,左移k位即相当于乘上2的k次方
右移 >> 将某个数的二进制向右移动几位
100<<4 即6,左移k位即相当于除以2的k次方

与运算
对二进制按位进行与运算
对于一个数字k,k&1的结果就是k最后一位的二进制数,因为1的二进制是0001,k前面的位都被&为0了。

位运算应用

  • 求数字n的第k位二进制是几

由于二进制是从0开始标记位数的,因此n>>k就使得最后一位是第k位置,
求该位置是几,&1即可
(n>>k)&1

  • 那么其实我们也能以此得出输出某个数字二进制简便方法:
int n=100;
	for(int i=6;i>=0;i--){
		cout<<(n>>i&1);
	}

其中i的初值就取该数二进制有多少位(这个自己求)

  • 介绍lowbit()运算
    lowbit就是返回某个数最后一个1的位数(以及后面的0)。例:

lowbit(52).
52=(110100)
故lowbit(52)=100

lowbit实现原理:
在这里插入图片描述

二进制中1的个数

  • 我自己写的通过“求数字n的第k位二进制是几”得到1的个数
    思路就是逐位求出n的二进制表示然后统计

#include<iostream>

using namespace std;

int n;

int solve(int x){
	int tmp=x;
	int nn=0;//位数
	int num=0;//有多少个1 
	while(tmp!=0){
		tmp/=2;nn++; 
	}
	for(int i=nn-1;i>=0;i--){
		if((x>>i)&1==1)
			num++;
	}
	return num;
}


int main(){
	
	int n,x;
	cin>>n;
	
	for(int i=1;i<=n;i++){
		cin>>x;
		cout<<solve(x)<<" ";
	}
		
	
	return 0;
} 
  • !使用lowbit()运算!

#include<iostream>

using namespace std;

int lowbit(int x){
	return x&(-x);
}

int n,x;

int main(){
	
	cin>>n;
	while(n--){
		cin>>x;
		int res=0;
		while(x) {
			x-=lowbit(x);
			res++;	
		}
		cout<<res<<" ";
	}
	
	return 0;
}

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

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

相关文章

C++学习笔记-数组

所谓数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;就是把有限个类型相同的变量用一个名字命名&#xff0c;然后用编号区分他们的变量的集合&#xff0c;这个名字称为数组名&#xff0c;编号称为下标。组成数组的各个变量称为数组的分量&#xff0c;…

[面向小白]一篇博客带你认识什么是栈以及如何手撕一个栈

目录 0.前言 1.什么是栈 2.实现栈所选择的基本结构 3.认识栈的小练习 4. 用代码实现一个栈 4.1 用什么可以描述出一个栈 4.2栈接口的设计原则 4.3栈的初始化 4.4栈的插入 4.5 栈的删除 4.6 栈的判空 4.7栈的有效元素的数量 4.8取出栈顶元素 4.9栈的销毁 5. 对实…

BUUCTF-[ACTF新生赛2020]Splendid_MineCraft

题目下载&#xff1a;下载 这道题涉及SMC&#xff0c;动静态调试。 查壳&#xff0c;无壳32位&#xff0c;载入IDA 进入主函数main&#xff1a; 从上面可以看出&#xff0c;flag长度为26&#xff0c;前五个是ACTF{&#xff0c;最后一位是}。 strtok()函数用法&#xff1a;st…

sso单点登录

文章目录 目录 文章目录 前言 一、sso结构实现 二、使用步骤 2.1 建一个spring cloud 项目 2.2 common下的core的配置 2.3 实现系统的业务微服务 2.4 sso模块的编写 总结 前言 单点登录(SingleSignOn&#xff0c;SSO)&#xff0c;就是通过用户的一次性鉴别登录。当用户在身份…

复习知识点三:做人不能半途而废,就算躺平也要躺最舒服的那张床

目录 运算符​编辑 键盘录入: 练习:键盘输入数字并求和 练习: 算术运算符 隐式转换(自动类型提升) 强制转换 练习1: 字符串的 "" 操作 ​编辑 练习 1: 练习2: 练习3: 自增自减运算符 赋值运算符 关系运算符(比较运算符)的分类 练习: 逻辑运算符 短路逻辑运…

电商平台销量查询:2023年1月牛奶乳品热门排行榜

随着人们消费能力的提升以及健康意识的增强&#xff0c;牛奶乳品已经成为居民日常饮食中的重要组成部分&#xff0c;伴随人们整体消费的增长&#xff0c;牛奶乳品行业也越来越成熟。 今年1月份我国牛奶乳品行业的整体趋势如何呢&#xff1f;结合数据我们一同来分析&#xff01;…

国外博士后待遇情况汇总

许多老师再考虑申请国外博士后的时候会顾虑待遇方面的问题&#xff0c;对此知识人网小编整理关于主要国家博士后待遇情况的汇总。美国&#xff1a;美国机会更多&#xff0c;生活质量更高&#xff0c;生活空间也广。美国的年薪一般是3.0-6.5万美金左右&#xff0c;刚博士毕业出来…

无脑霸总漫开播,她穿书变成恶毒女配,本想和霸总离婚摆烂

无脑霸总漫开播&#xff0c;她穿书变成恶毒女配&#xff01;本想和霸总离婚摆烂&#xff0c;不料却被霸总盯上了&#xff5e;虐妻一时爽&#xff0c;追妻火葬场&#xff0c;曾经的我你爱搭不理&#xff0c;现在的我你高攀不起&#xff01;#无脑霸总漫开播 #如何在无脑霸总漫里艰…

Sql Server数据库实现表中字段的列加密研究

1、问题描述 去年6月份的时候做过一个薪酬系统&#xff0c;要对里面的一些敏感字段进行一下加密。Sqlserver列加密可以参考官方文档&#xff1a;SQL Server 技术文档 - SQL Server | Microsoft Learn。主要看下来有三种加密方法&#xff1a;1、利用证书对数据进行加密和解密。2…

Google Guice 3:Bindings(1)

1. 序言 上一篇博客&#xff0c;《Google Guice 2&#xff1a;Mental Model》&#xff0c;讲述了Guice的建模思路&#xff1a;Guice is a map Guice官网认为&#xff1a;binding是一个对象&#xff0c;它对应Guice map中的一个entry&#xff0c;通过创建binding就可以向Guice …

RocketMQTemplate 实现消息发送

代码托管于gitee&#xff1a;easy-rocketmq 文章目录一、前置工作二、消费者三、生产者1. 普通消息2. 过滤消息3. 同步消息4. 延时消息5. 批量消息6. 异步消息7. 单向消息8. 顺序消息9. 事务消息概要Demo源码解读一、前置工作 1、导入依赖 <dependency><groupId>…

《羊驼亡命跑》 NFT 系列:羊驼跑酷套装来袭!

完美的羊驼跑酷&#xff01;这一系列植物、平台、愤怒的农民和神秘物品与你们的 Alpacadabraz 化身都是绝配。 关于 Paca Death Run Alpacadabraz 团队推出的首个主要体验的一切都很吸引&#xff01;这款跑酷游戏垂直填满了一个整个 1x1 The Sandbox LAND&#xff0c;挑战玩家在…

扬帆优配|看多A股!多家外资高调发声

外资看多我国的声响和动作正在增多&#xff01; A股商场迎来全面注册制落地后的首个交易日&#xff0c;三大指数集体走强。业内人士分析称&#xff0c;跟着全面实行股票发行注册制改革正式发动&#xff0c;能够预见&#xff0c;跟着商场化程度逐步进步&#xff0c;外资布局我国…

每天五分钟机器学习:新的大规模的机器学习机制——在线学习机制

本文重点 本节课程我们将学习一种新的大规模的机器学习机制--在线学习机制。在线学习机制让我们可以模型化问题。在线学习算法指的是对数据流进行学习而非离线的静态数据集的学习。许多在线网站都有持续不断的用户流,对于每一个用户,网站希望能在不将数据存储到数据库中便顺…

【Mybatis源码分析】datasource配置${}表达式时是如何被解析的?

核心配置中${}表达式配置的解析一、核心配置主体二、核心配置文件中properties是如何被解析的&#xff1f;三、${} 表达式的解析四、总结前提&#xff1a; 核心配置文件是被XMLConfigBuilder 对象进行解析的&#xff0c;configuration 对象是由它父类BaseBuider继承下来的属性…

LQB10,AT24C02的使用

1、单片机用P20和P21和AT24C02通信&#xff1b; 2、比赛提供的开发包里面的代码。 头文件 c文件 提供的代码解读以及修改合适自己使用。 #ifndef _IIC_H #define _IIC_Hvoid IIC_Start(void); void IIC_Stop(void); bit IIC_WaitAck(void); void IIC_SendAck(bit …

产品经理考个 PMP 有用吗?

产品经理考PMP肯定是有用的。学无止境&#xff01; 这里给一些想要转行项目管理的朋友一些PMP考证资料分享&#xff0c;内含不少考纲知识&#xff0c;题库&#xff0c;解题技巧&#xff0c;思维导图等等&#xff0c;有需要就保存下来&#xff0c;留着下次需要的时候用。 一&a…

二、并发编程的三大特性

文章目录并发编程的三大特性1、原子性什么是并发编程的原子性&#xff1f;保证并发编程的原子性synchronizedCASLock锁ThreadLocal2、可见性什么是可见性?解决可见性的方式volatilesynchronizedLockfinal3、有序性什么是有序性?as-if-serialhappens-beforevolatile并发编程的…

谷歌seo新站如何快速排名?如何提高Google自然排名

本文主要分享谷歌SEO如何做新站排名&#xff0c;很多刚出海的外贸小伙伴不会做谷歌SEO&#xff0c;快来学习。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 谷歌seo新站如何快速排名&#xff1f; 答案是&#xff1a;大量优质原创内…

科技新浪推前浪 ChatGPT将元宇宙“拍在沙滩上”?

近期ChatGPT的热度显然已经盖过了元宇宙&#xff0c;回想去年元宇宙大热之际&#xff0c;很多企业纷纷跟进&#xff0c;甚至还有不少公司选择更名以表达All In元宇宙的决心。而如今ChatGPT抢占风头&#xff0c;成为新宠&#xff0c;元宇宙似乎被“抛弃”了&#xff0c;难道元宇…