leetcode:颠倒二进制位(详解)

前言:内容包括:题目,代码实现,大致思路及图示

题目:

颠倒给定的 32 位无符号整数的二进制位。

提示:

请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。
 

示例 1:

输入:n = 00000010100101000001111010011100
输出:964176192 (00111001011110000010100101000000)
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
     因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
示例 2:

输入:n = 11111111111111111111111111111101
输出:3221225471 (10111111111111111111111111111111)
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
     因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。

代码实现:

uint32_t reverseBits(uint32_t n)
 {
    uint32_t ret = 0;
     int i = 0;
     for(i = 0;i<32;i++)
     {
       ret<<=1;
       ret|=(n>>i)&1;
     }
     return ret;
}

大致思路:

使用ret变量来存储颠倒后的二进制位:

1 得到数字n的二进制的每一位:让每一位都来到最低位,然后对其&1,即可得到最低位的数值

2 将由1得到的某一位上的数值 |(按位或) ret<<1(ret的二进制位左移1位)

图示:

 n>>i :让第i位来到最低位

(n>>i)&1 : 得到第i位的数字

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

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

相关文章

ThreeJS-聚光灯物体投影(二十)

聚光灯&#xff08;灯泡&#xff09; 关键代码&#xff1a; //直线光&#xff08;由光源发出的灯光&#xff09; // const directionalLight new THREE.DirectionalLight(0xFFFFFF, 0.7); // directionalLight.position.set(10, 10, 10); …

【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题

目录 试题F&#xff1a;时间显示 解题思路 代码 试题G&#xff1a;砝码称重 解题思路 代码 试题H&#xff1a;杨辉三角 解题思路 代码 试题I&#xff1a;双向排序 解题思路 试题J&#xff1a;括号序列 解题思路 试题F&#xff1a;时间显示 【问题描述】 小蓝要和…

Linux总结(二)

基础IO 1.什么叫文件? 我们需要在操作系统的角度理解文件。 文件 = 文件内容 + 属性(所以即使是空文件,也会占空间,因为我们是需要保存文件属性的,属性也是数据,所以占空间) C/C++程序默认会打开三个文件流,叫做标准输入(stdin),标准输出(stdout),标准错误(std…

【新2023Q2押题JAVA】华为OD机试 - 服务依赖

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:服务依赖 题目 在某系统中有…

时间序列的迁移学习

目录 时间序列及其研究状况&#xff1a; 时间序列中存在迁移学习问题吗&#xff1f; 已有的时间序列建模方法的大致思路 迁移学习如何应用于时间序列建模&#xff1f; 本内容摘录于王晋东老师的《迁移学习导论》 时间序列及其研究状况&#xff1a; 所谓时间序列&#…

Linux权限提升—内核、SUID、脏牛等提权

Linux权限提升—内核、SUID、脏牛等提权1. 前言2. 基础信息收集2.1. 内核、操作系统、设备信息等2.2. 用户信息2.3. 用户权限信息2.4. 环境信息2.5. 进程与服务2.6. 安装的软件2.7. 服务与插件2.8. 计划任务2.9. 是否有存放明文密码2.10. 查看与主机通信信息2.11. 日志信息3. 脚…

基于混合整数规划方法的微网电池储能容量优化配置

代码相关资源&#xff1a;TOPSIS法&#xff08;优劣解距离法&#xff09; 风电场风速两参数weibull(威布尔)分布的MATLAB小程序 遗传算法优化神经网络&#xff0c;对光伏出力预测的优化设计&#xff0c;实现了部分功能 关键词&#xff1a;储能容量优化 储能配置 微网 编程…

10年花费9773亿,华为完成13000颗元器件国产替代,外媒:结束了

近期&#xff0c;华为的消息层出不穷&#xff0c;就在前几天&#xff0c;华为就释放出2个信号&#xff0c;任正非为代表的巨头纷纷表态及发言&#xff0c;显而易见的是&#xff0c;如今华为正处于生死攸关的重要阶段。那么华为释放了哪2个信号呢&#xff1f;其一是&#xff0c;…

centos7离线安装docker

前言 在没有互联网的情况下想要安装某些软件用docker是十分方便的一种方式&#xff0c;例如oracle。原生的oracle安装是非常麻烦的&#xff0c;本人亲眼目睹一个专门搞oracle的公司的人安装oracle三天没有成功&#xff01;因此不得不学习在没有互联网的情况下使用docker来安装…

网络层IP协议和数据链路层

目录IP协议协议头格式分片网段划分特殊的IP地址IP地址的数量限制NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术的缺陷NAT和代理服务器私有IP地址和公网IP地址路由路由表生成算法数据链路层认识以太网以太网帧格式认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MT…

web自动化测试:Selenium+Python基础方法封装(建议收藏)

01、目的 web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”&#xff0c;通常都会作为广大测试从业者的首选学习对象&#xff0c;相较于C/S架构的自动化来说&#xff0c;B/S有着其无法忽视的诸多优势&#xff0c;从行业发展趋、研发模式特点、测试工具支持&…

SpringCloud学习2(Spring Cloud Netflix)负载均衡Ribbon、Feign负载均衡、Hystix服务熔断

文章目录负载均衡RibbonRibbon的作用代码实现生产者cloud1_provider实现配置文件在HiController中编写以下代码启动集群消费者cloud1_consumer实现引入依赖编写配置文件编写启动类&#xff0c;并给RestTemplate配置LoadBalanced注解编写RestController来测试Feign负载均衡简介F…

信息收集与运用

目录 一.实验目的 二.实验原理 三.实验内容 一.收集信息 二.猜解密码 三.密码强度检测 源码 测试用例 程序输出结果​编辑 ​四.小结与讨论 1.举出保护个人敏感信息的方法&#xff08;最少三点&#xff09;。 2.如何提高你的密码强壮性&#xff0c;以避免黑客利用密…

Java类加载过程面试总结

什么是Java的类加载机制 Java 虚拟机一般使用 Java 类的流程为&#xff1a;首先将开发者编写的 Java 源代码&#xff08;.java文件&#xff09;编译成 Java 字节码&#xff08;.class文件&#xff09;&#xff0c;然后类加载器会读取这个 .class 文件&#xff0c;并转换成 jav…

05.List的介绍

1. List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable也是一个接口&#xff0c;表示实现该接口的类是可以逐个元素进行遍…

仿真与测试:单元测试与Test Harness

本文描述单元测试的概念&#xff0c;以及Test Harness建立的方法和简单的单元测试过程。 文章目录1 单元测试1.1 场景举例1.2 简单的测试方法2 Test Harness建立2.1 模型配置2.2 创建Test Harness3 总结1 单元测试 单元测试&#xff0c;简单来说就是在Simulink模型中只测试一小…

63-哈希表

目录 1.哈希表的概念 2.哈希函数的概念 3.哈希函数的设计 3.1.key为整型时哈希函数的设计 3.1.1.普通整数 3.1.2.负整数 3.1.3.大整数 PS&#xff1a;哈希函数设计的3个要求&#xff1a; PS&#xff1a;2种类型的哈希函数&#xff08;大整数&#xff09; 3.2.key为其…

【数据结构】树与二叉树的基本概念及性质

目录 一、树的基本概念 1️⃣树的定义 2️⃣基本术语 3️⃣树的性质 二、二叉树的概念 1️⃣二叉树的定义 2️⃣特殊二叉树 3️⃣二叉树的性质 参考资料 一、树的基本概念 1️⃣树的定义 数据结构中的树是什么❓ 树是 个结点的有限集。有且仅有一个特定的称为根(上图A结点…

C++ [内存管理]

本文已收录至《C语言》专栏&#xff01; 作者&#xff1a;ARMCSKGT 目录 前言 正文 计算机中内存分布 C语言的内存管理 内存申请函数 内存释放函数 C内存管理 new操作符 delete操作符 特性总结 注意 原理探究 operator new和operator delete函数 operator new的底…

【C++】STL之string的使用和模拟实现

初阶的C语法和基本的类和对象我们已经学过了&#xff0c;下面我们会步入一段新的旅程。本章我们将初步了解STL(标准模板库)&#xff0c;并且深入探讨其中一个非常重要的容器———string。 目录 &#xff08;一&#xff09;STL简介&#xff08;了解即可&#xff09; &#xf…