美文网首页
颠倒给定的 32 位无符号整数的二进制位

颠倒给定的 32 位无符号整数的二进制位

作者: 段段小胖砸 | 来源:发表于2021-06-24 10:27 被阅读0次

题目:(力扣第190题)


image.png

效果图:


image.png

思路:一开始看到这个题,是想着先用把输入的十进制数字转换成2进制,然后再把二进制转成字符串然后转换为数组,再将二进制数组倒着排列一下,然后再转为10进制。一开使用的Integer.toBinaryString(),将十进制转为二进制,反转之后转为10进制发现输出不正确,然后断点检查发现十进制转成的2进制不是32位的,而是

10100101000001111010011100    ----  java使用Integer转
00000010100101000001111010011100     ----  题目实例中的二进制

就是前面的0被省略了,那么反转过来的二进制数组肯定就会有变化,所以就只能想其他办法。然后就用了前面文章写到的整数反转中的方案三,取模除十累加。

十进制:ans = ans * 10 + n % 10; n = n / 10;
二进制:ans = ans * 2 + n % 2; n = n / 2;
乘以2 可以通过向左位移一位实现,
除以2 可以通过向右位移一位实现

算法思维:数学思维:取模、累加

 public int reverseBits(int n) {      
         // 在此处写入代码
        int res = 0;
        for (int i = 0; i < 32; i++) {
            res = (res << 1) + (n & 1);
            n >>= 1;
        }
        return res;
    }

相关文章

  • 2019-01-26 Day 21

    颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 0000001010010100000...

  • 每周 ARTS 第 29 周

    1. Algorithm 颠倒二进制位(简单) 描述: 颠倒给定的 32 位无符号整数的二进制位。 示例: 思路:...

  • 算法 1.1.2 颠倒二进制位【leetcode 190】

    题目描述 颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。 示例 1:输入: 000000101001010...

  • 43颠倒二进制位

    颠倒给定的 32 位无符号整数的二进制位。 示例 1:输入: 00000010100101000001111010...

  • 190. 颠倒二进制位

    内容 颠倒给定的 32 位无符号整数的二进制位。 示例: 输入: 43261596输出: 964176192解释:...

  • 【LeetCode】颠倒二进制位

    题目描述: 颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 000000101001010000011...

  • 颠倒二进制位

    颠倒给定的 32 位无符号整数的二进制位。 示例:输入: 43261596输出: 964176192解释: 432...

  • 颠倒二进制位

    颠倒给定的 32 位无符号整数的二进制位。 示例: 输入: 43261596输出: 964176192解释: 43...

  • LeetCode 190.颠倒二进制位

    题目描述颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596输出: 964176192解释: ...

  • 位运算

    相关算法题目 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 000000101001010000...

网友评论

      本文标题:颠倒给定的 32 位无符号整数的二进制位

      本文链接:https://www.haomeiwen.com/subject/aolwyltx.html