力扣面试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);
    }
}
相关推荐
阿杰同学7 小时前
Java 设计模式 面试题及答案整理,最新面试题
java·开发语言·设计模式
这样の我7 小时前
java 模拟chrome指纹 处理tls extension顺序
java·开发语言·chrome
Genevieve_xiao7 小时前
【数据结构与算法】【xjtuse】面向考纲学习(下)
java·数据结构·学习·算法
4311媒体网7 小时前
php和c++哪个更好学?C++难学吗?
java·c++·php
修炼地7 小时前
代码随想录算法训练营第二十七天 | 56. 合并区间、738.单调递增的数字、968.监控二叉树
c++·算法
仰泳的熊猫7 小时前
1031 Hello World for U
数据结构·c++·算法·pat考试
毕设源码-朱学姐7 小时前
【开题答辩全过程】以 基于SpringBoot的流行音乐网站的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
jiayong237 小时前
Spring 框架完全指南
java·后端·spring
高山上有一只小老虎7 小时前
小红的正整数计数
java·算法
AnAnCode7 小时前
【时间轮算法-实战】Java基于Netty的 `HashedWheelTimer`快速搭建时间轮算法系统
java·开发语言·算法·时间轮算法