leetcode做题笔记190. 颠倒二进制位

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

提示:

  • 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
  • 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825

思路一:位运算

c++解法

cpp 复制代码
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t rev = 0;
        for (int i = 0; i < 32 && n > 0; ++i) {
            rev |= (n & 1) << (31 - i);
            n >>= 1;
        }
        return rev;
    }
};

分析:

本题要将原给定的二进制位颠倒,可以利用位运算的方法,将原来的数最后的数移到左边,不断向右移,直到将数完全颠倒过来为止

总结:

本题考察对位运算的应用,利用左右移来将二进制数颠倒

相关推荐
Felven4 分钟前
C. Contrast Value
c语言·开发语言·算法
natide6 分钟前
表示/嵌入差异-1-欧几里得距离(Euclidean Distance)-L2 距离(L2 distance)-欧式距离的标准化
人工智能·pytorch·python·深度学习·算法·自然语言处理
雪花desu7 分钟前
【Hot100-Java简单】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
java·数据结构·算法·leetcode·哈希表
qzhqbb8 分钟前
群智能计算核心算法全解析
人工智能·算法
colus_SEU8 分钟前
【计算机网络笔记】第三章 传输层
网络·笔记·计算机网络
leaves falling9 分钟前
c语言打印闰年
java·c语言·算法
YGGP9 分钟前
【Golang】LeetCode 121. 买卖股票的最佳时机
算法·leetcode
紫小米17 分钟前
Qwen微调医疗模型(学习笔记)
笔记·学习
mmz120722 分钟前
差分数组(二维)(c++)
c++·算法
小明和大树24 分钟前
JAVA 学习笔记 三
java·笔记·学习