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;
    }
相关推荐
前端炒粉2 小时前
18.矩阵置零(原地算法)
javascript·线性代数·算法·矩阵
暴风鱼划水3 小时前
三维重建【0-D】3D Gaussian Splatting:相机标定原理与步骤
算法·3d
mount_myj5 小时前
敏感信息屏蔽(一)【java】
java·算法·极课堂
先做个垃圾出来………6 小时前
偏移量解释
数据结构·算法
FanXing_zl6 小时前
基于整数MCU的FOC控制定标策略深度解析
单片机·嵌入式硬件·mcu·算法·定点运算·q15
立志成为大牛的小牛6 小时前
数据结构——三十三、Dijkstra算法(王道408)
数据结构·笔记·学习·考研·算法·图论
憨憨崽&7 小时前
C语言、Java、Python 的选择与未来发展以及学习路线
java·c语言·python
地平线开发者7 小时前
mul 与 reduce_sum 的优化实例
算法·自动驾驶
坚持编程的菜鸟7 小时前
LeetCode每日一题——Pow(x, n)
c语言·算法·leetcode