力扣面试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);
    }
}
相关推荐
2501_924952691 分钟前
代码生成器优化策略
开发语言·c++·算法
MORE_776 分钟前
leecode100-划分区间-贪心算法
算法·贪心算法
清风徐来QCQ12 分钟前
八股文(1)
java·开发语言
zdl68613 分钟前
springboot集成onlyoffice(部署+开发)
java·spring boot·后端
摇滚侠18 分钟前
你是一名 java 程序员,总结定义数组的方式
java·开发语言·python
Book思议-23 分钟前
【数据结构实战】C语言实现栈的链式存储:从初始化到销毁,手把手教你写可运行代码
数据结构·算法·链表··408
Book思议-37 分钟前
【数据结构实战】川剧 “扯脸” 与栈的 LIFO 特性 :用 C 语言实现 3 种栈结构
c语言·数据结构·算法·
架构师沉默1 小时前
AI 让程序员更轻松了吗?
java·后端·架构
3GPP仿真实验室1 小时前
【MATLAB源码】感知:CFAR 检测算法库
算法·matlab·目标跟踪
fengenrong1 小时前
20260324
c++·算法