c语言中的左右移函数 c语言左移和右移函数

C语言左位移运算符和右位移运算符是什么意思,怎么运算,举个例子..

就是把一个数转化成二进制再直接对他进行操作

成都创新互联是工信部颁发资质IDC服务器商,为用户提供优质的服务器托管服务

例如:

452 //45右移两位

45的二进制为:101101

右移两位就为: 001011

001011再转化为十进制为:11

所以452= 11

左移运算符

452

45的二进制为:101101

左移两位就为:10110100

10110100再转化为十进制为:180

所以452=180

单片机C语言 的循环左右移动 函数问题。

首先对比一下 左边与右边 那里有不同 同时 程序不同对应的输出结构有哪些不同。。

P2口 连接8个LED 低电平驱动使其发光。

P2=0xfe //上电 P2.0连接的 LED发光。 其余的熄灭。

对比一下程序

void main() //主函数

{

P2=0xfe; //P2初始化

while(1) //死循环

{

num=P2; //这里 与左边不同 把P2的状态给 NUM 也就是0XFE num=0xfe

P2=_crol_(num,1); //P2等于num 循环左移 P2=0xef 这时应该是连接的P2.7的LED发光

delay(0);//延迟

}

}

左边 代码 NUM 每次大循环 都赋值 num=0xfe 是固定的 所以不管你以后怎么移动 P2口的输出都是不变得 只移动了一次。。

C语言和单片机中的左移右移

# include "reg51.h" // 包含头文件

#define uchar unsigned char

void delay02s(void) // 延时0.2s子程序

{

unsigned char i,j,k;

for ( i=2;i0;i-- )

for (j=200;j0;j-- )

for (k=250;k0;k-- );

}

void main (void) // 主函数

{

uchar i,j;

while (1) // 死循环

{

j=0x01; // j初始化为0x01,左移初始值

for(i=0;i8;i++) // for循环语句,完成8个循环

{

P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出

delay02s( ); // 延时0.2s

j= j1; // 左移1位

}

j=0x80; // 设置右移初始值j为0x80

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

{

P1= ~ j;

delay02s( );

j= j1; // 右移1位

}

}

}

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语言中的左右移函数 c语言左移和右移函数
路径分享:http://ybzwz.com/article/ddggpgd.html