默认只有算术右移。 要循环右移需要把最低位保存下来, 然后赋值到碧纯最左丛慧搜。
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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)