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

提示:

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

进阶:
如果多次调用这个函数,你将如何优化你的算法?

示例 1:

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

解题思路

把n从右到左的位数逐个读出,将读出来的位数从左到右加入res中

代码

public class Solution {// you need treat n as an unsigned valuepublic int reverseBits(int n) {int res=0;for(int i=0;i<32;i++){res<<=1;res+=(n&1);n>>=1;}return res;}
}

leetcode 190. 颠倒二进制位(位运算)相关推荐

  1. leetcode#190 颠倒二进制位

    leetcode#190 颠倒二进制位 题目: 颠倒给定的 32 位无符号整数的二进制位. 示例: 输入: 00000010100101000001111010011100 输出: 001110010 ...

  2. java二进制反转_Java实现 LeetCode 190 颠倒二进制位

    190. 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位. 示例 1: 输入: 00000010100101000001111010011100 输出: 0011100101111000001 ...

  3. leetcode 190. 颠倒二进制位

    颠倒给定的 32 位无符号整数的二进制位. 示例 1: 输入: 00000010100101000001111010011100 输出: 0011100101111000001010010100000 ...

  4. Leetcode 190. 颠倒二进制位 解题思路及C++实现

    解题思路: 使用移位运算和与运算,将32位二进制数n中的每一位取出来,然后将取出的0或1相应地进行右移操作,最终加和得到结果. 下面的程序中,循环执行32次,每一次循环,得到n的第 i 位数,即 通过 ...

  5. [leetcode]190. 颠倒二进制位

    class Solution {public:uint32_t reverseBits(uint32_t n) {bitset<32>temp(n); //左边是低位,temp[0]是二进 ...

  6. 【Leetcode】[190] 颠倒二进制位

    [Leetcode][190] 颠倒二进制位 Author: Xin Pan Date: 2022.3.13 题目 原题链接 颠倒给定的 32 位无符号整数的二进制位. 解法 考虑使用位运算来做,因为 ...

  7. 【LeetCode】妙用位运算解题

    [LeetCode]妙用位运算解题 文章目录 [LeetCode]妙用位运算解题 交替位二进制数★ 插入★ 数字范围按位与★★ 比特位计数★★ 下一个数★★ 消失的两个数字★★★ 修改后的最大二进制字 ...

  8. LeetCode刷题:位运算(找不同 和 只出现一次的数字)

    1.常见的位运算 按位与&:(1&1=1,1&0=0,0&1=0,0&0=0); 按位或 | : (1 | 1=1,1 | 0=1,0 | 1=1,0 | 0= ...

  9. 【LeetCode】190. 颠倒二进制位 easy / bitset / stoul

    简单题现在目标25分钟吧:中等题一个小时吧. 重点:input: 无符号整型,output: 无符号整型. 颠倒:是指首位颠倒,而不是01颠倒 stoul(str, nullptr, 2) 第三个参数 ...

最新文章

  1. Android之Android实现浮层的上下滑动(支持内部添加View)
  2. 故障排错-解决迅雷播放器在Windows 10中长时间停止响应
  3. 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )
  4. NIO:channel、buffer、状态变量、socket、charset
  5. ajax返回不刷新页面,Jquery ajax不刷新页面提交action取得返回值
  6. zipkin server 数据持久化问题
  7. 初探System.Threading.Channels
  8. Jarvis:一个值得关注的多模态端到端人机对话框架,针对所有行业适配
  9. BeanFactory 简介以及它 和FactoryBean的区别
  10. Fast Fourier Transform
  11. 2017最后两个半月的安排
  12. json字符串-单、双引号
  13. 给计算机添加网络打印机驱动,详细教您电脑怎么安装打印机驱动
  14. 上海python暑假培训班
  15. Win10 1607 频繁断网,迅雷断网以及迅雷下载崩溃解决方案
  16. win7磁盘清理_Win7系统使用久变慢怎么办?Windows7系统优化方法
  17. 什么是PING值,PING值的计算方法
  18. 21个令程序员泪流满面的瞬间 ...
  19. 淘宝吱口令效果实现,获取系统剪贴板内容
  20. 关于 css 中的转换属性,CSS3中的transform转换属性

热门文章

  1. Unix网络编程(六)高级I/O技术之复用技术 select
  2. muduo网络库源码阅读Step by Step
  3. 【Leetcode】112. 路径总和
  4. 【9303】平面分割
  5. Github 简明教程 - 添加远程库
  6. Java内部类的定义和使用
  7. HW--漂亮度2(测试通过)
  8. 64位Ubuntu提示(...adb": error=2, 没有那个文件或目录)
  9. python 中移去文件的只读属性
  10. 安装VSTFS后遗症解决方法