c_cpp 无符号整数的反转位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 无符号整数的反转位相关的知识,希望对你有一定的参考价值。

typedef unsigned int uint;
uint swapBits(uint x, uint i, uint j) {
    uint lo = ((x >> i) & 1);
    uint hi = ((x >> j) & 1);
    if (lo ^ hi) 
        x ^= ((1U << i) | (1U << j)); // gist, because X ^ 0 = X
    return x;
}

uint reverseXor(uint x) {
    uint n = sizeof(x) * 8;
    for (uint i = 0; i < n/2; i++) 
        x = swapBits(x, i, n-i-1);
    return x;
}

以上是关于c_cpp 无符号整数的反转位的主要内容,如果未能解决你的问题,请参考以下文章

反转无符号整数

2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段

ARTS Week 6

Leetcode整数反转

7. 整数反转

整数反转