/** @lc app=leetcode.cn id=190 lang=java** [190] 颠倒二进制位** https://leetcode-cn.com/problems/reverse-bits/description/** algorithms* Easy (34.10%)* Total Accepted: 8.6K* Total Submissions: 25.2K* Testcase Example: '00000010100101000001111010011100'** 颠倒给定的 32 位无符号整数的二进制位。**** 示例 1:** 输入: 00000010100101000001111010011100* 输出: 00111001011110000010100101000000* 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,* 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。** 示例 2:** 输入:11111111111111111111111111111101* 输出:10111111111111111111111111111111* 解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,* 因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。**** 提示:*** 请注意,在某些语言(如* Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。* 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数* -1073741825。***** 进阶:* 如果多次调用这个函数,你将如何优化你的算法?**/public class Solution {// you need treat n as an unsigned valuepublic int reverseBits(int n) {int ret = 0;for (int i=0; i<32; n >>>= 1, ++i) {ret = (ret << 1) | (n & 1);}return ret;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。