C语言实现循环左移和右移
一、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语言实现循环左移和右移相关推荐
- c语言循环左移程序,用C语言实现循环左移,右移
C51中实现循环左移.右移的库函数: #includeunsigned char _crol_( unsigned char c, /*charactertorotateleft*/ unsigned ...
- java循环左一_java实现循环左移和右移的简单算法
java实现循环左移和右移的简单算法 byte a=112,用程序实现,将其循环左移三位和右移三位. 112的二进制原码:0111 0000 112循环左移3位后的二进制码:1000 0011 112 ...
- c语言的左移运算,C语言中的左移和右移运算.docx
C 语言中的左移和右移运算 C 语言中的左移和右移运算 (>> 和 < 1.各种数据格式(整型int ,字符型 char 等)占有几个存储单元(不同的编译器有所不同) 在TC2.0和 ...
- c语言负数左移右移_C语言里的左移和右移运算
C语言里的左移和右移运算 先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用运算符.例如:int i = 1;i = i 2; /把i里的值左移2位也就是说,1的2进制是000.0001(这 ...
- 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}; ...
- C语言里的左移和右移运算
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1; i = i << 2; //把i里的值左移2位 也就是说,1的2进制是00 ...
- 计算机原理与基础 —— C语言中的左移与右移
1.双目运算符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算. 位移位运算符分为左移和右移两种,均为双目运算符. 例如: 8 >> 3 (意思是8向右移动3 ...
- 关于C语言中的左移与右移
总结 ** 1. 左移时总是移位和补零,无论是有符号类型数据还是无符号类型数据都统称为逻辑左移. 2. 右移时无符号数是移位和补零,此时称为逻辑右移; 3. 右移时而有符号数大多数情况下是移位和补最左 ...
- c语言中左移一位 由什么补充,计算机原理与基础 —— C语言中的左移与右移
1.双目运算符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算. 位移位运算符分为左移和右移两种,均为双目运算符. 例如: 8 >> 3 (意思是8向右移动3 ...
- c语言 数组循环左移m位
#include<stdio.h> //函数原型 void rightshiftleft(int *p_num,int n,int m); void enterint(int *p_num ...
最新文章
- matlab自动给变量命名
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
- [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析
- Java 核心内容相关面试题【4】
- Unite'17 Shanghai再一次问候
- HDU2066--一个人的旅行(Dijkstra)
- ESP32 SIM800L:发送带有传感器读数的文本消息(SMS警报)
- win10MATLAB如何完全卸载,怎么完全卸载cad_win10彻底卸载cad的图文步骤-系统城
- vue 部署上线清除浏览器缓存
- 别套模板了 这款宝藏AE插件一键解决画面排版
- 前端程序员未来如何发展?
- 手机停机照样可以上网,,教教你。。
- plt python 自己制定cmap_在plt.cm.get-cmap中可以使用哪些名称?
- 认真学习jdk1.8下ConcurrentHashMap的扩容机制
- 2021年熔化焊接与热切割试题及解析及熔化焊接与热切割作业考试题库
- QTP/UFT(二):自动化测试脚本编写方法
- 网络地理知识之全球数据中心与地理位置的情况简报,再来了解一下?
- JAVA开发者值得一看的几本书,好书推荐
- 苏宁易购山寨版 JavaWeb项目,源码我奉献了吧!
- 给系统全面提速 Vista优化大师试用评测
热门文章
- 计算机内打不开小米路由器,win7系统无法访问小米路由器的解决方法
- eclipse、ddms、android studio连接不上手机问题解决
- Python+tkinter应用程序设置背景图片
- 工业锅炉计算机控制系统框图,锅炉控制(汇总).ppt
- TRACE32——List源代码查看
- 第五届模式识别与人工智能国际会议-PRAI 2022
- 【转】PV3D的小练习~太阳系八大行星
- 3Dmax自动加载脚本错误,语法错误:位于bad,需要因子
- 开放正成为华为下一阶段的战略竞争力
- 问题——nvm use 出现exit status 1:乱码