力扣面试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);
    }
}
相关推荐
空白到白几秒前
机器学习-聚类
人工智能·算法·机器学习·聚类
索迪迈科技5 分钟前
java后端工程师进修ing(研一版 || day40)
java·开发语言·学习·算法
十碗饭吃不饱7 分钟前
net::ERR_EMPTY_RESPONSE
java·javascript·chrome·html5
白初&15 分钟前
SpringBoot后端基础案例
java·spring boot·后端
zzzsde20 分钟前
【数据结构】队列
数据结构·算法
哈基米喜欢哈哈哈20 分钟前
ThreadLocal 内存泄露风险解析
java·jvm·面试
芒克芒克29 分钟前
LeetCode 面试经典 150 题:删除有序数组中的重复项(双指针思想解法详解)
算法
青 .29 分钟前
数据结构---二叉搜索树的实现
c语言·网络·数据结构·算法·链表
萌新小码农‍33 分钟前
Java分页 Element—UI
java·开发语言·ui
鼠鼠我捏,要死了捏40 分钟前
深入实践G1垃圾收集器调优:Java应用性能优化实战指南
java·g1·gc调优