c语言实现循环位移的函数

  • 循环左移

    c 复制代码
    #include <stdio.h>
    int lefttrot(int x, int n){
        if (n < 0) {
            printf("移动数目不可为负");
            return -1;
        }
        
        n %= 32;
        int book = x & (-1 >> (32 - n));
        return (x >> n) | (book << (32 - n));
    }
    
    int main(){
        printf("%d", lefttrot(-1, 100));
        return 0;
    }
  • 循环右移

    c 复制代码
    #include <stdio.h>
    int righttrot(int x, int n){
        if (n < 0) {
            printf("移动数目不可为负");
            return -1;
        }
        
        n %= 32;
        int book = x >> (32 - n);
        return (x << n) | book;
    }
    
    int main(){
        printf("%d", righttrot(-1, 100));
        return 0;
    }
相关推荐
ValhallaCoder7 小时前
hot100-堆
数据结构·python·算法·
小小小米粒7 小时前
函数式接口 + Lambda = 方法逻辑的 “插拔式解耦”
开发语言·python·算法
风吹乱了我的头发~8 小时前
Day31:2026年2月21日打卡
开发语言·c++·算法
望舒5138 小时前
代码随想录day33,动态规划part2
java·算法·leetcode·动态规划
那起舞的日子8 小时前
牛客网刷算法的启发
算法
追随者永远是胜利者9 小时前
(LeetCode-Hot100)169. 多数元素
java·算法·leetcode·go
s砚山s9 小时前
代码随想录刷题——二叉树篇(二十)
算法
宇木灵10 小时前
C语言基础学习-X0前置
c语言·开发语言·学习
-Rane10 小时前
【C++】vector
开发语言·c++·算法
代码栈上的思考10 小时前
滑动窗口算法实战
算法