您的位置:首页 > 编程语言

3个位不断循环(LED灯循环点亮)的程序模拟【给某位同学的演示代码】

2013-05-20 21:48 337 查看
之前有个同学,问我 一个普通的数,怎么把其低3位的二进制位中的一个“1”,循环移动。。。

这个单片机里做某些功能的时候经常用到 。

#include<stdio.h>

#include<stdlib.h>

int main(void)

{

char this_char = 0x31;

char buf[16] ={0};

while(gets(buf)) // 这里只是用一个用户输入动作来手动控制 一次循环,这样比较直观,呵呵

{

char c_tmp;

c_tmp = this_char&0x7;

printf("first: 0x%x\n", c_tmp);

if((c_tmp ==0x1)||(c_tmp ==0x2))

{

c_tmp <<= 0x1;

printf("if c_tmp: 0x%x\n", c_tmp);

}

else

{

c_tmp = 0x1;

printf("else c_tmp: 0x%x\n", c_tmp);

}

printf("c_tmp&0xF8: 0x%x\n", c_tmp&0xF8);

this_char = (this_char&0xF8)|c_tmp;

printf("out thischar=====: 0x%x\n", this_char);

}

return 0;

}

试验程序的操作办法,执行之后,

直接回车,或者随便输入一个什么字符,回车,会打印结果,你观察

out thischar=====: 之后打印的那个16进制数

1-->2--> 4 循环变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: