单片机C语言移位的实现
流水灯循环左移右
c51中的intri
_crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
_nop_ 空操作8051 NOP 指令
_testbit_ 测试并清零位8051
详解:
函数名: _crol_,_ir
原 型: unsigned char _crol_(uns
unsigned int _irol_(uns
unsigned int _lrol_(uns
功 能:_crol_,_
例:
#include
main()
{
unsigned int y;
C-5 1 程序设计 37
y=0x00ff;
y=_irol_(y
}
函数名: _cror_,_ir
原 型: unsigned char _cror_(uns
unsigned int _iror_(uns
unsigned int _lror_(uns
功 能:_cror_,_
例:
#include
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y
}
函数名: _nop_
原 型: void _nop_(void
功 能:_nop_产生一
函数工作期间不产生函
例:
P()=1;
_nop_();
P()=0;
函数名: _testbit_
原 型:bit _testbit_(
功 能:_testbit
如果该位置为1,则将
_testbit_只
至于>>=,>>
比如将a=0x45循环左移二位。
a循环左移n位,即将原来右面(8-n)位左移n位,而将原来左端的n位移到最右面n位。
1、将a的左端n位先放到b中的低n位中
b=a>>(8-n);
2、将a左移n位,其右面低n位被补0
c=a 3、将b,c进行或运算 a=c|b; 程序如下: main() { unsigned char a=0x45,b,c; unsigned int n=2; b=a>>(8-n) c=a a=c|b; }
单片机C语言移 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)