leetcode刷题日记:190. Reverse Bits(颠倒二进制位)和191. Number of 1 Bits( 位1的个数)

190. Reverse Bits(颠倒二进制位)

题目要求我们将一个数的二进制位进行颠倒,画出图示如下(以8位二进制为例):
在这里插入图片描述
显然对于这种问题我们需要用到位操作,我们需要将原数的每一位取出来然后颠倒之后放进另一个数。
我们需要先知道离散数学中的几个公式 p ∨ 1 = 1 p ∨ 0 = p p ∧ 1 = p p ∧ 0 = 0 p\lor 1 = 1\\p\lor 0=p\\p\land 1 = p\\p\land 0 = 0 p1=1p0=pp1=pp0=0
知道上述的公式之后我们就可以对数进行取出位数。
如下图所示
在这里插入图片描述
在这里插入图片描述

也就是说我们要取出哪一位就让哪一位&上1就行了。
但是如何控制对应位为1而其他位为0呢?我们知道c语言中移位操作>>与<<,分别代表左移与右移,让对应位为1我们只需要让1进行<<操作就行。
经过移位与&操作我们可以得到一个除了要取出位为原二进制数中对应位之外,其余位全为0的数。
现在取出哪一位的问题已经解决了,我们知道 p ∨ 0 = = p p\lor0==p p0==p也就是说我们要保证接收对应位的数的对应位等于0,其余的均不许要进行改变,因为我们取出数的位除了取出的那一位其余位全为0,并不会改变我们的接收数。由此我们有了以下的思路。
因为有符号整型的数在进行移位操作的时候并不能操作符号位所以我们需要先进行符号位的改变。或者使用无符号整型。

uint32_t reverseBits(uint32_t n) {
    int x = 0;
    if(n%2==0){
        x = 0;
    }else{
        x = INT_MIN;
    }
    for(int i =0; i<31; i++){
        n = n>>1;
        x |= ((n&1)<<(30-i));
    }
    return x;
}

运行结果截图:
在这里插入图片描述

191. Number of 1 Bits( 位1的个数)

经过上面这一题之后我们已经知道怎么取出对应位了,取出对应位之后判断是否为1就行了。

int hammingWeight(uint32_t n) {
    int count = 0;
    while(n){
        if(n&1){
            count++;  
        }
        n=n>>1;
    }
    return count;
}

运行结果截图:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CHM文件阅读必备:CHM Viewer Star 免激活

CHM Viewer Star for Mac是一款针对Mac系统的CHM文件查看器&#xff0c;具有以下功能特点&#xff1a; 快速打开和加载CHM文件&#xff1a;采用高效的解码引擎&#xff0c;可以快速打开和阅读CHM文件&#xff0c;同时系统资源占用少&#xff0c;用户可以流畅地阅读大型CHM文件…

文本向量化

文本向量化表示的输出比较 import timeimport torch from transformers import AutoTokenizer, AutoModelForMaskedLM, AutoModel# simcse相似度分数 def get_model_output(model, tokenizer, text_str):"""验证文本向量化表示的输出:param model: 模型的…

分组交换技术

目录 一、新型计算机网络的基本特点 二、电路交换 1、回顾电路交换的原理 2、使用交换机连接许多部电话 3、电路交换举例 4、电路交换的三个阶段 5、电路交换的特点 三、分组交换 1、因特网有边缘部分与核心部分组成 2、分组交换的原理 3、分组交换的优点 4、存储转…

RepVgg: 网络结构重参化

CVPR2021 截至目前1004引 论文连接 代码连接 文章提出的问题 大多数的研究者追求的是设计一个好的网络结构,这种“好”体现在网络具有复杂的网络设计,这种网络虽然比简单的网络收获了更加高的准确率,但是网络结构中的大量并行分支,导致模型的难以应用和自定义,主要体现…

支付、结算、对账流程

1、支付过程概览 2、微信支付流程 以微信支付为例,用户使用北京银行,商户收款银行为工行银行,列出机构名 用户在商户处选购商品或服务,选择使用微信支付进行付款。用户打开微信支付,输入支付密码或进行指纹识别等身份验证。微信支付系统将支付请求发送给北京银行。北京银行…

【Spring】之注解存取Bean对象

在本系列的上一篇文章中&#xff0c;我们已经了解了Spring的一些核心概念&#xff0c;并且还学习了Spring存取。但是我们发现在存取的过程中还是比较复杂&#xff0c;接下来我们将学习更为简单的Spring存取&#xff0c;其中涉及到的主要内容就是注解。并且在Spring家族的学习过…

kubenetes-服务发现和负载均衡

一、服务发布 kubenetes把服务发布至集群内部或者外部&#xff0c;服务的三种不同类型&#xff1a; ClusterlPNodePortLoadBalancer ClusterIP是发布至集群内部的一个虚拟IP,通过负载均衡技术转发到不同的pod中。 NodePort解决的是集群外部访问的问题&#xff0c;用户可能不…

FL Studio2024免费编曲音乐制作软件

用FL Studio编曲&#xff0c;让音乐成为你的翅膀&#xff0c;飞翔在无尽的创作海洋中吧&#xff01; FL Studio作为一款功能强大且备受赞誉的音乐制作软件&#xff0c;为你提供了一个独特的创作平台。通过FL Studio&#xff0c;你可以自由地创作、编曲&#xff0c;制作属于自己…

IDEA 搭建 SpringCloud 项目【超详细步骤】

文章目录 一、前言二、项目搭建1. 数据库准备2. 创建父工程3. 创建注册中心4. 服务注册5. 编写业务代码6. 服务拉取 一、前言 所谓微服务&#xff0c;就是要把整个业务模块拆分成多个各司其职的小模块&#xff0c;做到单一职责原则&#xff0c;不会重复开发相同的业务代码&…

Jenkins测完通知到人很麻烦?一个设置配置钉钉消息提醒!

Jenkins 作为最流行的开源持续集成平台&#xff0c;其强大的拓展功能一直备受测试人员及开发人员的青睐。大家都知道我们可以在 Jenkins 中安装 Email 插件支持构建之后通过邮件将结果及时通知到相关人员。但其实 Jenkins 还可以支持钉钉消息通知&#xff0c;其主要通过 DingTa…

【Linux】动静态库的使用与软链接的结合

文章目录 前言一、静态库1.静态库的创建2.静态库的链接3.将库进行打包4.链接方法&#xff1a;1.直接链接2.拷贝到系统路径里面3.采用软链接方法 二、动态库1.解决加载找不到动态库的方法1.直接拷贝2.建立软链接3.建立自己的动态路径配置文件 2.为什么动态库权限需可执行而静态库…

【WSL/WSL2-Ubuntu】突破界限:不使用服务器在一台Windows搭建Nginx+FastDFS

打造超级开发环境&#xff1a;Nginx和FastDFS在WSL中的完美结合 前言 随着软件开发领域的快速发展&#xff0c;跨平台的开发环境变得日益重要。Windows Subsystem for Linux&#xff08;WSL&#xff09;和WSL 2为开发者提供了在Windows操作系统上体验Linux环境的便捷途径。本…

javaspringbootmysql学生社团管理系统26281-计算机毕业设计项目选题推荐(附源码)

目录 摘要 Abstract 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 学生社团管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析…

用户增长模型:3A3R策略模型

一、概述 A - A - A - R - R - R 增长模型&#xff0c;即3A3R策略模型&#xff0c;由海盗模型演变而来&#xff0c;是目前使用最多、适用范围最广的增长策略模型。原始的海盗模型由 Acquisition &#xff08;获客&#xff09;、 Activation &#xff08;活跃&#xff09;、 Re…

【选题推荐】软件工程毕设选题可以选什么

文章目录 0 简介1 如何选题2 最新软件工程毕设选题3 最后 0 简介 学长搜集分享最新的软件工程业专业毕设选题&#xff0c;难度适中&#xff0c;适合作为毕业设计&#xff0c;大家参考。 学长整理的题目标准&#xff1a; 相对容易工作量达标题目新颖 1 如何选题 最近非常多的…

C语言选择结构 if 语句

if语句 程序运行结构if语句常见三种形式单行格式if语句多行格式if语句多条件的if语句 嵌套if语句if语句案例三只鸡那只重 if语句注意事项 程序运行结构 C语言支持最基本的三种程序运行结构&#xff1a;顺序结构、选择结构&#xff08;分支结构)、循环结构 顺序结构&#xff1…

2023年高压电工证考试题库及高压电工试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年高压电工证考试题库及高压电工试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机出的高压…

《洛谷深入浅出基础篇》 P5250 木材仓库————集合应用实例

上链接&#xff1a; P5250 【深基17.例5】木材仓库 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P5250上题干&#xff1a; 题目描述 博艾市有一个木材仓库&#xff0c;里面可以存储各种长度的木材&#xff0c;但是保证没有两个木材的长度是…

Java面向对象(高级)-- 类的成员之四:代码块

文章目录 一、回顾&#xff08;1&#xff09;三条主线&#xff08;2&#xff09;类中可以声明的结构及作用1.结构2.作用 二、代码块&#xff08;1&#xff09;代码块的修饰与分类1. 代码块的修饰2. 代码块的分类3. 举例 &#xff08;2&#xff09; 静态代码块1. 语法格式2. 静态…