一、win下stdlib.h中的循环移位函数

unsigned int _rotl(unsigned int value,int shift
);
unsigned __int64 _rotl64(unsigned __int64 value,int shift
);
unsigned int _rotr(unsigned int value,int shift
);
unsigned __int64 _rotr64(unsigned __int64 value,int shift
);

微软帮助文档:https://www.baidu.com/link?url=vcaoeKfMNevowWj1d485LtW-iVZdaJtVdrLRyzwBP3OJFRKmIyZKMSUI19vJhHhpbq9pHmhiX42hXTu3Vc0Lc3qlWEbQSeiAimwO9Niz1Nb3Ej6ffw5HBAC443Wo3dX1pRUMxiURPHESttP7koKCaq&wd=&eqid=f5c336ef0000c801000000065f917ffd

二、KeilC51单片机C语言库intrins.h中的循环移位函数

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 );

三、使用宏实现循环移位函数

// value循环左移bits位
#define rol(value, bits) ((value << bits) | (value >> (sizeof(value)*8 - bits)))// value循环右移bits位
#define ror(value, bits) ((value >> bits) | (value << (sizeof(value)*8 - bits)))

main.cpp测试代码

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int value = 0x01;int rst1 = rol(value, 1);int rst2 = rol(value, 31);int rst3 = rol(value, 33);printf("0x%x, 0x%x, 0x%x\n", rst1, rst2, rst3);unsigned int temp = 0x80000000;unsigned int rst4 = ror(temp, 1);unsigned int rst5 = ror(temp, 31);unsigned int rst6 = ror(temp, 33);printf("0x%x, 0x%x, 0x%x\n", rst4, rst5, rst6);return a.exec();
}

运行结果:


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

C语言实现循环左移和右移相关推荐

  1. c语言循环左移程序,用C语言实现循环左移,右移

    C51中实现循环左移.右移的库函数: #includeunsigned char _crol_( unsigned char c, /*charactertorotateleft*/ unsigned ...

  2. java循环左一_java实现循环左移和右移的简单算法

    java实现循环左移和右移的简单算法 byte a=112,用程序实现,将其循环左移三位和右移三位. 112的二进制原码:0111 0000 112循环左移3位后的二进制码:1000 0011 112 ...

  3. c语言的左移运算,C语言中的左移和右移运算.docx

    C 语言中的左移和右移运算 C 语言中的左移和右移运算 (>> 和 < 1.各种数据格式(整型int ,字符型 char 等)占有几个存储单元(不同的编译器有所不同) 在TC2.0和 ...

  4. c语言负数左移右移_C语言里的左移和右移运算

    C语言里的左移和右移运算 先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用运算符.例如:int i = 1;i = i 2; /把i里的值左移2位也就是说,1的2进制是000.0001(这 ...

  5. c语言解决循环左移和循环右移

    循环左移: 例:1 2 3 4 5循环左移一位后变成2 3 4 5 1,循环左移两位后变成3 4 5 2 1. 下面用for循环实现: int i,k,j,temp,a[n]={1,2,3,4,5}; ...

  6. C语言里的左移和右移运算

    先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1; i = i << 2; //把i里的值左移2位 也就是说,1的2进制是00 ...

  7. 计算机原理与基础 —— C语言中的左移与右移

    1.双目运算符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算. 位移位运算符分为左移和右移两种,均为双目运算符. 例如: 8  >>  3   (意思是8向右移动3 ...

  8. 关于C语言中的左移与右移

    总结 ** 1. 左移时总是移位和补零,无论是有符号类型数据还是无符号类型数据都统称为逻辑左移. 2. 右移时无符号数是移位和补零,此时称为逻辑右移; 3. 右移时而有符号数大多数情况下是移位和补最左 ...

  9. c语言中左移一位 由什么补充,计算机原理与基础 —— C语言中的左移与右移

    1.双目运算符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算. 位移位运算符分为左移和右移两种,均为双目运算符. 例如: 8  >>  3   (意思是8向右移动3 ...

  10. c语言 数组循环左移m位

    #include<stdio.h> //函数原型 void rightshiftleft(int *p_num,int n,int m); void enterint(int *p_num ...

最新文章

  1. matlab自动给变量命名
  2. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
  3. [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析
  4. Java 核心内容相关面试题【4】
  5. Unite'17 Shanghai再一次问候
  6. HDU2066--一个人的旅行(Dijkstra)
  7. ESP32 SIM800L:发送带有传感器读数的文本消息(SMS警报)
  8. win10MATLAB如何完全卸载,怎么完全卸载cad_win10彻底卸载cad的图文步骤-系统城
  9. vue 部署上线清除浏览器缓存
  10. 别套模板了 这款宝藏AE插件一键解决画面排版
  11. 前端程序员未来如何发展?
  12. 手机停机照样可以上网,,教教你。。
  13. plt python 自己制定cmap_在plt.cm.get-cmap中可以使用哪些名称?
  14. 认真学习jdk1.8下ConcurrentHashMap的扩容机制
  15. 2021年熔化焊接与热切割试题及解析及熔化焊接与热切割作业考试题库
  16. QTP/UFT(二):自动化测试脚本编写方法
  17. 网络地理知识之全球数据中心与地理位置的情况简报,再来了解一下?
  18. JAVA开发者值得一看的几本书,好书推荐
  19. 苏宁易购山寨版 JavaWeb项目,源码我奉献了吧!
  20. 给系统全面提速 Vista优化大师试用评测

热门文章

  1. 计算机内打不开小米路由器,win7系统无法访问小米路由器的解决方法
  2. eclipse、ddms、android studio连接不上手机问题解决
  3. Python+tkinter应用程序设置背景图片
  4. 工业锅炉计算机控制系统框图,锅炉控制(汇总).ppt
  5. TRACE32——List源代码查看
  6. 第五届模式识别与人工智能国际会议-PRAI 2022
  7. 【转】PV3D的小练习~太阳系八大行星
  8. 3Dmax自动加载脚本错误,语法错误:位于bad,需要因子
  9. 开放正成为华为下一阶段的战略竞争力
  10. 问题——nvm use 出现exit status 1:乱码