循环位移函数c语言 编程实现循环移位

C语言:写一个函数用来实现左右循环移位。

#include stdio.h

创新互联建站专注于托克托企业网站建设,响应式网站开发,电子商务商城网站建设。托克托网站建设公司,为托克托等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

void fun(int value,int n,int dire)

{

if(dire==0) return;

int x=1(sizeof(int)*8-1);

int temp;

int i;

if(dire0)

{

for(i=0;in;i++)

{

temp=value1;

value=1;

if(temp) value|=x;

}

}

else

{

for(i=0;in;i++)

{

temp=value x;

value=1;

if(temp) value|=1;

}

}

}

void main()

{

int x=0x55555555;

fun(x,1,1);

printf("%x",x);

}

C语言中的循环移位计算?

因为是按8进制输入的,8进制的24换成10进制就是20,换成2进制就是00010100(以1字节表示)。而00010100循环右移2位后就是00000101,即10进制的5,而5按8进制输出(输出格式为%o),就是5。

00010100循环左移2位后是01010000,用10进制表示就是80,而80按8进制输出(输出格式为%o),就是120。

c语言,循环位移函数

循环右移 就是

_cror_

和这个类似的。

你这个是单片机里面的吧

除了单片机,很少有这么用的。

C语言编程题:移位函数,既能循环左移又能循环右移

#include stdio.h

#include math.h

unsigned fun(unsigned num, int n)

{

if(n  0)

{

//sizeof(unsigned)*8计算变量所占位数,如int型占32位

return (num  (sizeof(unsigned)*8 - n)) | (num  n); //先高位移动,再低位移动后,两者按位或,相当把低位溢出的又添加到了高位,实现了循环的效果 

else 

{

return (num  (sizeof(unsigned)*8 - abs(n))) | (num  abs(n));

}

}

void main(void) 

{

printf("%u\n", fun(2, -34));

}


文章名称:循环位移函数c语言 编程实现循环移位
转载来于:http://ybzwz.com/article/doedoos.html