重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//下面是将数组左移的函数void fun(char *a, int *length)//length为字符串a的长度{ for(int i = 0; i length - 2; i++) { a[i] = a[i+2]; }*length = (*length) - 2; } //如果只是输出左移两位的结果,可以用下面这个函数void fun(char *a, int length){ for(int i =2; i length; i++) { printf("%c",a[i]); }}
成都创新互联专注于峨山县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供峨山县营销型网站建设,峨山县网站制作、峨山县网页设计、峨山县网站官网定制、小程序开发服务,打造峨山县网络公司原创品牌,更为您提供峨山县网站排名全网营销落地服务。
//用一个循环就可以实现数组的循环左移:
int i,n,m;//temp表示左移位数
int a[n];
for(i=0;in-m;i++)a[i]=a[i+m];//此时的数组个数为n-m
#includestdio.h
#define N 10
void fun(int *a,int n,int x) { int i,j,k;
for ( i=0;ix;i++ ) { k=a[0]; for ( j=0;jn-1;j++ ) a[j]=a[j+1]; a[n-1]=k; }
}
void main() { int a[N],i,x;
printf("Enter %d integers: ",N); for ( i=0;iN;i++ ) scanf("%d",a[i]);
printf("Enter x: "); scanf("%d",x);
fun(a,N,x);
printf("After Circle left shift %d bit: ",x); for ( i=0;iN;i++ ) printf("%d ",a[i]);
printf("\n");
}
循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。设有数据说明:
a=01111011,循环左移2位 正确结果: 11101101
过程:
b=a(8-2) 用来得到正常左移丢失的位和循环移位后其正确位置 b=00000001;
a=a2;左移 a=11101100
a=a|b; a=11101101
如果不是用中间变量 a=(a(8-2))|(a2)
总长度N(8 16 32)
循环左移n: (a(N-n))|(an)
循环右移n: (a(N-n))|(an)
C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能,灵活掌握是用C程序编写系统程序的基础。
扩展资料:
C语言高效编程技巧:
一:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题
二:数学方法解决问题
数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。
三:使用位操作
实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。
参考资料来源:百度百科-c语言程序设计