力扣面试150题--颠倒二进制位

Day 89

题目描述

思路

二进制的算法,将十进制转化为二进制,有一点需要注意,直接采取库函数转化为二进制再反转会出现问题(这也是为什么我要补0的原因),因为转化过去不满足32位的二进制,前面不会当作无符号而是当作有符号数,顶位会当作符号位自动补,导致反转得到的值不对。

java 复制代码
class Solution {
    public int reverseBits(int n) {
        StringBuilder res=new StringBuilder();
       int num=2;
       while(n!=0){
          res.append(n%2);
          n=n/2;
          num=num<<1;
       }
       while(res.length()<32) {
           res.append(0);
       }
       return Integer.parseInt(res.toString(),2);
    }
}
相关推荐
遇见尚硅谷1 分钟前
C语言:20250728学习(指针)
c语言·开发语言·数据结构·c++·笔记·学习·算法
愿你天黑有灯下雨有伞16 分钟前
枚举策略模式实战:优雅消除支付场景的if-else
java·开发语言·策略模式
十八岁讨厌编程29 分钟前
【算法训练营Day17】二叉树part7
算法
Dcs43 分钟前
gRPC性能陷阱:低延迟网络下的客户端瓶颈揭秘
java
探索java1 小时前
深入解析 Spring 获取 XML 验证模式的过程
xml·java·spring
找不到、了1 小时前
Java设计模式之<装饰器模式>
java·设计模式·装饰器模式
YouQian7721 小时前
(AC)Playlist
算法
java叶新东老师1 小时前
解决windows系统下 idea、CLion 控制台中文乱码问题
java·windows·intellij-idea
算法_小学生2 小时前
决策树(Decision Tree)完整解析:原理 + 数学推导 + 剪枝 + 实战
算法·决策树·剪枝
岁忧2 小时前
(LeetCode 面试经典 150 题 ) 155. 最小栈 (栈)
java·c++·算法·leetcode·面试·go