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;
    }
相关推荐
iAkuya10 小时前
(leetcode)力扣100 73柱状图中最大的矩形(单调栈)
算法·leetcode·职场和发展
pp起床11 小时前
动态规划 | part03
算法·动态规划
mit6.82411 小时前
合法括号字符串|递归|树
算法
普通网友11 小时前
C++与Rust交互编程
开发语言·c++·算法
逆境不可逃11 小时前
【春节篇】LeetCode 热题 100 之 238.除了自身以外数组的乘积
数据结构·算法·leetcode
铸人11 小时前
再论自然数全加和 - 质数螺旋及其生成程序
数学·算法·数论·复数
StandbyTime11 小时前
C语言学习-菜鸟教程C经典100例-练习79
c语言
散峰而望12 小时前
【算法竞赛】堆和 priority_queue
开发语言·数据结构·c++·算法·贪心算法·动态规划·推荐算法
WarPigs12 小时前
UI显示任务目的地标记的方法
算法·ui
蚊子码农12 小时前
算法题解记录-560和为k的子数组
算法