c语言循环右移怎么编

c语言循环右移怎么编,第1张

默认只有算术右移。 要循环右移需要把最低位保存下来, 然后赋值到碧纯最左丛慧搜。

unsigned int func(unsigned int n)

{

    unsigned int v=n&1

    n>>=1

    if(v) n|=1<<渗历(sizeof(unsigned int)-1)

    return n

}

函数功能如巧耐宽巧:将输入字渣春符串 src循环右移n位 result为输出结果

要求:以效率最高的方式实现

示例:

“abcde” --2-->"deabc"

"abcde"--8-->"cdeab"

void right_shift_r(const char* src,char* result,unsigned int n)

{

        unsigned int len = strlen(src)

        int i=0

        for(i=0i<leni++)

        {

                result[i] = src[i+n]%len 

        }

}

unsigned char crol(unsigned char c,unsigned b)

{ //左租腊慧移

unsigned char leftleft=c<<局游b

unsigned char rightright=c>>( sizeof (unsigned char )-b)

return left|right

}

unsigned char cror(unsigned char c,unsigned b)

{ //右弊答移

unsigned char right

right =c>>b

unsigned char left

left=c<<( sizeof (unsigned char )-b)

return left|right

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12353683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存