如何用c语言实现循环左移 30

要编译可以通过的用c语言编写一段代码可以实现循环左移,c语言有左移运算符〈〈但是没有循环左移... 要编译可以通过的
用c语言编写一段代码 可以实现循环左移,c语言有左移运算符〈〈 但是没有循环左移
展开
 我来答
小耳朵爱聊车
高粉答主

推荐于2019-08-09 · 说的都是干货,快来关注
知道大有可为答主
回答量:7378
采纳率:100%
帮助的人:309万
展开全部

循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。  设有数据说明:

a=01111011,循环左移2位 正确结果: 11101101

过程:

b=a>>(8-2) 用来得到正常左移丢失的位和循环移位后其正确位置 b=00000001;

a=a<<2;左移 a=11101100

a=a|b; a=11101101

如果不是用中间变量 a=(a>>(8-2))|(a<<2)

总长度N(8 16 32)

循环左移n: (a>>(N-n))|(a>>n)

循环右移n: (a<<(N-n))|(a>>n)

C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能,灵活掌握是用C程序编写系统程序的基础。

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题 

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位操作

实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。

参考资料来源:百度百科-c语言程序设计

NJGQZF
推荐于2017-09-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1247万
展开全部
用C语言实现循环左移,有两个办法。
一个是调用循环左移库函数:
_crol_(temp,1);//将变量temp循环左移1位
一个是自己编写循环左移函数,下面以字符型变量循环左移为例:
调用函数定义字符型变量x、y、z(也可以是全局变量)。
x是要循环左移的目标数据,y是变量x的位数,z是期望循环左移的位数。
调用循环左移函数方法:
x=data_rl(x,y,z);//从调用函数返回后变量x循环左移z位
循环左移函数定义:
unsigned char data_rl(unsigned char x,unsigned char y,unsigned char z)
{
unsigned char temp;
temp=x>>(y-z);
x=x<<z;
x=x | temp;
return x;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ray01
2009-11-17 · TA获得超过464个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:294万
展开全部
a是目的数,n为a的位数,i为循环左移的位数
函数名(int a,int n,int i)
{
temp=a>>(n-i);
a=a<<i;
a=a|temp;
return a;
}
这样应该可以吧,你试试
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这嘎达是啥地方
2009-11-13 · TA获得超过836个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:196万
展开全部
while(条件)
{
左移运算;
}

没有你自己写撒 .....
while就可以了撒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjw408797664
2009-11-13 · TA获得超过1153个赞
知道小有建树答主
回答量:1042
采纳率:0%
帮助的人:704万
展开全部
#include<stdio.h>
void main()
{
int a=1;
int i;
for(i=0;i<5;i++)
a=a<<1;
printf("%d",a);
}
左移5次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式