C51中实现循环左移、右移的库函数:
自己实现同样的功能:
- #include <intrins.h>
- unsigned char _crol_ (
- unsigned char c, /* character to rotate left */
- unsigned char b); /* bit positions to rotate */
- unsigned char _cror_ (unsigned char, unsigned char);
- unsigned int _iror_ (unsigned int, unsigned char);
- unsigned long _lror_ (unsigned long, unsigned char);
- unsigned char _crol_ (unsigned char, unsigned char);
- unsigned int _irol_ (unsigned int, unsigned char);
- unsigned long _lrol_ (unsigned long, unsigned char)
- unsigned char crol(unsigned char c, unsigned b)
- {
- unsigned char left = c<<b;
- unsigned char right = c>>(sizeof(unsigned char)-b)
- unsigned char temp = left|right;
- return temp;
- }
- unsigned char cror(unsigned char c, unsigned b)
- {
- unsigned char right = c>>b;
- unsigned char left = c<<(sizeof(unsigned char)-b)
- unsigned char temp = left|right;
- return temp;
- }