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 p∨1=1p∨0=pp∧1=pp∧0=0
知道上述的公式之后我们就可以对数进行取出位数。
如下图所示


也就是说我们要取出哪一位就让哪一位&上1就行了。
但是如何控制对应位为1而其他位为0呢?我们知道c语言中移位操作>>与<<,分别代表左移与右移,让对应位为1我们只需要让1进行<<操作就行。
经过移位与&操作我们可以得到一个除了要取出位为原二进制数中对应位之外,其余位全为0的数。
现在取出哪一位的问题已经解决了,我们知道 p ∨ 0 = = p p\lor0==p p∨0==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;
}
运行结果截图:

相关文章:
leetcode刷题日记:190. Reverse Bits(颠倒二进制位)和191. Number of 1 Bits( 位1的个数)
190. Reverse Bits(颠倒二进制位) 题目要求我们将一个数的二进制位进行颠倒,画出图示如下(以8位二进制为例): 显然对于这种问题我们需要用到位操作,我们需要将原数的每一位取出来然后颠倒之后放进另一个数。 我们需要…...
Node.js之fs文件系统模块
什么是fs文件系统模块?又如何使用呢?让我为大家介绍一下! fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求 注意:如果要在JavaScript代码中,…...
「Verilog学习笔记」使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 当EI10时、U1禁止编码,其输出端Y为000,GS1、EO1均为0。同时EO1使EI00,U0也禁止编码,其输出端及GS0、EO0均为0。由电路…...
C/C++---------------LeetCode第LCR. 024.反转链表
反转链表 题目及要求双指针 题目及要求 双指针 思路:遍历链表,并在访问各节点时修改 next 引用指向,首先,检查链表是否为空或者只有一个节点,如果是的话直接返回原始的头节点,然后使用三个指针来迭代整个…...
最长回文子序列 递归与动态规划
public static int longestPalindromeSubseq(String s) { char[] chars s.toCharArray(); int n chars.length; int[][] dp new int[n][n]; //先约束边界 dp[L][R] dp[n-1][n-1] 1; //约束的下边界,那就从上边界开始,直至下边界的前一位 //此处初始化…...
学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
🧸欢迎来到dream_ready的博客,📜相信您对博主首页也很感兴趣o (ˉ▽ˉ;) 博主首页,更多redis、java等优质好文以及各种保姆级教程等您挖掘! 目录 前言 JetBrains全家桶介绍 申请过程: 获取学…...
67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。
基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。数据可更换自己的,程序已调通,可直接运行。 67 matlab图像处理图像降噪 (xiaohon…...
【精选】项目管理工具——Maven详解
Maven简介 Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。 Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下…...
DVWA - 4
文章目录 JavaScriptlowmedium JavaScript 前端攻击。token 不能由前端生成,js 很容易被攻击者获取,从而伪造 token。同样其他重要的参数也不能由前端生成。 low 不修改输入,点击提交报错: 根据提示改成 success,还是报错&…...
gRPC之grpc resolver
title: gRPC之grpc resolver(二十) date: 2023-01-27 top: 0 categories: GogRPC tags:GogRPC description: | 1、grpc resolver 当我们的服务刚刚成型时,可能一个服务只有一台实例,这时候client要建立grpc连接很简单,只需要指定server 的…...
NI Package Manager创建程序包
NI Package Manager创建程序包 要使用PackageManager创建程序包,即把相关的组件都放在一个目录下,使用命令行创建程序包。 程序包是一个压缩文件,包含要安装到目标位置的所有文件。Package Manager创建的程序包扩展名为.nipkg。可以使用Pack…...
C语言实现排序介绍
C语言学习都会学到排序算法,下面实现两个排序算法: #include <stdio.h>// 冒泡排序 void bubble_sort(int arr[], int n) {for (int i 0; i < n - 1; i) {for (int j 0; j < n - i - 1; j) {if (arr[j] > arr[j 1]) {int temp arr[j…...
64位ATT汇编语言使用bss段.skip指令储存字符,并使用系统调用输出字符
.global main .section .data .section .bss# 需要输出的字符数组,还没有初始化mystring: .skip 4 .section .text main:# 将mystring这个字符串的地址存入到rbx寄存器中leaq mystring,%rbx# 将a放入到mystring第一个字节里边movb $a,(%rbx)# 将地址往后边移动一个字…...
贝锐蒲公英路由器X4C如何远程访问NAS?
在目前网盘前路坎坷的情况下,私人云盘已然是一种新的趋势!那自己打造一个私有云盘,是否需要高成本或是高门槛呢?其实并不用!蒲公英针对个人玩家打造了全方位的私有云解决方案。 (1)入门级玩家只…...
Golang Context 的使用指南
Golang Context 的使用指南 1. 什么是 Context 在 Golang 中,Context 是一个用于跨 goroutine 传递数据、取消任务以及超时控制的标准库。它提供了一种从父 goroutine 向子 goroutine 传递请求或控制信息的机制,可以有效地管理和控制 goroutine 的生命…...
vue3使用西瓜播放器播放flv、hls、mp4视频
vue3使用西瓜播放器播放flv、hls、mp4视频 安装相关的插件 npm install xgplayer npminstall xgplayer-flv npm install xgplayer-hls npm install xgplayer-mp4 组件封装 <template><div :id"${playerId}" /> </template> <script setup la…...
【Promise12数据集】Promise12数据集介绍和预处理
【Segment Anything Model】做分割的专栏链接,欢迎来学习。 【博主微信】cvxiayixiao 本专栏为公开数据集的介绍和预处理,持续更新中。 要是只想把Promise12数据集的raw形式分割为png形式,快速导航,直接看2,4标题即可 …...
Qt设置整体背景颜色
this->setStyleSheet("border:none;background-color:white");...
Stream流常见操作
.stream() 常用方法 .forEach() 该方法接收一个 Consumer 接口函数,会将每一个流元素交给该函数进行处理 .filter():过滤 该接口接收一个 Predicate 函数式接口参数(可以是一个Lambda或方法引用)作为筛…...
INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
近年来,日志管理平台越来越流行。使用日志管理平台可以实时地、统一地、方便地管理和查看日志,挖掘日志数据价值,驱动运维、运营,提升服务管理效率。 方案架构 Beats 是轻量级采集器,包括 Filebeat、Metricbeat 等。E…...
自媒体效率革命:OpenClaw+Phi-3-vision自动生成图文内容
自媒体效率革命:OpenClawPhi-3-vision自动生成图文内容 1. 为什么选择OpenClawPhi-3组合 去年我刚开始做科技类自媒体时,每天要花4-5小时在内容创作上——从全网搜索素材、筛选图片、写文案到排版发布,整个过程繁琐又耗时。直到发现OpenCla…...
微信小程序+Pixel Couplet Gen:多语言切换(中/英/日)技术实现
微信小程序Pixel Couplet Gen:多语言切换(中/英/日)技术实现 1. 项目背景与核心价值 Pixel Couplet Gen是一款融合传统春节文化与现代像素游戏风格的创新应用。通过ModelScope大模型驱动,它能生成独特的马年像素春联,…...
学术研究助手:OpenClaw+Qwen3.5-9B-AWQ-4bit自动解析论文图表
学术研究助手:OpenClawQwen3.5-9B-AWQ-4bit自动解析论文图表 1. 为什么需要自动化论文图表解析? 去年冬天,当我面对堆积如山的文献PDF时,突然意识到一个残酷事实:科研工作者80%的时间都消耗在重复性劳动上。最典型的…...
Autosar最小系统搭建避坑指南:从Det到BswM,那些容易忽略的模块依赖与自动修复技巧
Autosar最小系统搭建避坑指南:从Det到BswM,那些容易忽略的模块依赖与自动修复技巧 在Autosar工程实践中,搭建最小系统往往是开发者面临的第一个实质性挑战。不同于简单的"Hello World"式验证,一个真正可运行的Autosar最…...
从零开始:使用mmdetection3d和FCOS3d模型训练nuscenes-mini数据集的完整流程
从零构建:基于FCOS3D与NuScenes-mini的3D目标检测实战指南 在自动驾驶和机器人感知领域,3D目标检测技术正经历着前所未有的发展。OpenMMLab生态系统中的mmdetection3d框架,凭借其模块化设计和丰富的算法支持,已成为该领域研究与实…...
Z-Image-Turbo_Sugar脸部Lora与Transformer架构浅析:理解其背后的AI原理
Z-Image-Turbo_Sugar脸部Lora与Transformer架构浅析:理解其背后的AI原理 最近在玩AI画图的朋友,可能都听说过各种“Lora”模型,比如专门画特定风格、特定角色的。今天咱们就来聊聊其中一个挺有意思的模型——Z-Image-Turbo_Sugar脸部Lora。这…...
DeepSeek-R1-Distill-Qwen-1.5B实战:3步完成模型部署,开启智能对话体验
DeepSeek-R1-Distill-Qwen-1.5B实战:3步完成模型部署,开启智能对话体验 1. 模型简介与核心优势 DeepSeek-R1-Distill-Qwen-1.5B是DeepSeek团队基于Qwen2.5-Math-1.5B基础模型,通过知识蒸馏技术融合R1架构优势打造的轻量化版本。这个1.5B参数…...
OpenClaw镜像体验指南:千问3.5-35B-A3B-FP8云端沙盒快速验证
OpenClaw镜像体验指南:千问3.5-35B-A3B-FP8云端沙盒快速验证 1. 为什么选择云端沙盒验证OpenClaw 去年冬天,当我第一次尝试在本地部署OpenClaw时,整整两天时间都耗在了环境依赖和权限问题上。Node.js版本冲突、Python虚拟环境报错、CUDA驱动…...
数据中心光纤跳线选型指南:SC、LC、FC三种接口的实战对比与避坑建议
数据中心光纤跳线选型指南:SC、LC、FC三种接口的实战对比与避坑建议 在数据中心的基础设施中,光纤跳线作为光信号传输的"最后一公里",其选型直接影响着网络性能的稳定性和运维效率。面对市场上SC、LC、FC三种主流接口类型ÿ…...
OpenClaw日志排查助手:千问3.5-9B自动化分析开发日志
OpenClaw日志排查助手:千问3.5-9B自动化分析开发日志 1. 为什么需要日志自动化分析 作为一个长期与代码打交道的开发者,我每天至少有30%的时间花在查看日志上。从服务器报错到本地调试输出,海量的日志信息常常让我陷入"信息过载"…...
