力扣面试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);
    }
}
相关推荐
行者全栈架构师2 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_02 小时前
mac(m5)平台编译openjdk
java
JieE21211 小时前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack2019 小时前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树21 小时前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java
JieE2122 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法