c语言之异或运算_c语言运算符优先级表

c语言之异或运算_c语言运算符优先级表c语言之异或运算异或运算,计算机相关专业比较熟悉了。相同为0,不同为1.结合计算机内部的位运算,a^a=0;与本身异或是为0的。有关的知识运用到数据交互中去。voidint_swap(int*x,int*y){ *y=*x^*y;//step1 *x=*x^*y;//step2 *y=*x^*y;//step3}运用这个函数就能完成两个数据交换。但是并没有提高时间复杂度和空间复杂度,有关书籍上称之为智力游戏。我们来看看数据的变化。假设*x=a,*y=b.*x*y

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

c语言之异或运算

异或运算,计算机相关专业比较熟悉了。相同为0,不同为1.结合计算机内部的位运算,a^a=0;与本身异或是为0的。有关的知识运用到数据交换中去。

void int_swap(int *x,int *y){ 
   
	*y=*x^*y;//step1
	*x=*x^*y;//step2
	*y=*x^*y;//step3
}

Jetbrains全家桶1年46,售后保障稳定

运用这个函数就能完成两个数据交换。但是并没有提高时间复杂度和空间复杂度,有关书籍上称之为智力游戏。我们来看看数据的变化。

假设*x=a,*y=b.

*x *y
step1 a a^b
step2 a^a^b=b a^b
step3 b b^a^b=a

可在DEV上运行的完整代码,供大家学习。

#include<stdio.h>
void int_swap(int *x,int *y){ 
   
	*y=*x^*y;
	*x=*x^*y;
	*y=*x^*y;
}
int main(){ 
   
	int *x;
	int *y;
	int i=10;
	int j=20;
	x=&i;
	y=&j;
	printf("first x= %d\ny= %d\n",*x,*y);
	int_swap(x,y);
	printf("second x= %d\ny= %d\n",*x,*y);
	return 0;
}

很简单就没有注释,关键是我太懒,还有就是好久不写代码了!太菜太菜。

这里给大家一个网站吧,c网页编译器

我不想保存的,或者调试的喜欢用网页运行一下。专业课太多和自己贪玩c快荒废了。最近在啃一本书《计算机体系结构》其实也没有多少时间,最近忙着做其他的项目,但是力不从心。

下面给大家一个数组交换的代码。不多说了,精力有限。

#include<stdio.h>
void int_swap(int *x,int *y){ 
   
	*y=*x^*y;
	*x=*x^*y;
	*y=*x^*y;
}
void reverse_array(int a[],int cnt){ 
   
	int first,last;
	for(first=0,last=cnt-1;first<last;first++,last--) int_swap(&a[first],&a[last]);
	printf("first=%d,last=%d\n",first,last);
	for(int i=0;i<21;i++) printf("%d\n",a[i]);
}
int main(){ 
   
	int *x;
	int *y;
	//int i=10;
	//int j=20;
	//x=&i;
	//y=&j;
	int a[21];
	for(int i=1;i<22;i++){ 
   
		a[i-1]=i;
	}
	reverse_array(a,21);
	//printf("first x= %d\ny= %d\n",*x,*y);
	//int_swap(x,y);
	//printf("second x= %d\ny= %d\n",*x,*y);
	return 0;
}

大家可以自己输入数组的数据,或者用自己喜欢的方式都ok的!

我的结果是这样的。

first=10,last=10
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1

Process exited after 0.114 seconds with return value 0

到此就结束了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDataParameter调用存储过程

    IDataParameter调用存储过程

    2021年12月6日
    53
  • 基于MATLAB的智能交通信号灯控制系统的实现

    基于MATLAB的智能交通信号灯控制系统的实现写在前面1)现实意义早期使用的交通信号灯是固定配时的调控方式,无法随着车流量的变动而调整绿灯时间,这降低绿灯的使用效益,增大了车辆在交叉口的延误。堵车现象频繁发生,给市民工作生活带来了极大不便,国民经济受到影响。这时候提高道路通行效率,特别是交叉路口的车辆通行效率就显得尤为重要。2)关键技术智能交通系统的核心是交通信号灯的智能控制算法,根据实时交通流的大小,配置信号周期及各种色灯的闪亮时间…

    2022年9月24日
    2
  • sql:常用:group by 多个字段「建议收藏」

    sql:常用:group by 多个字段「建议收藏」首先groupby的简单说明:  groupby一般和聚合函数一起使用才有意义,比如countsumavg等,使用groupby的两个要素:  (1)出现在select后面的字段要么是是聚合函数中的,要么就是groupby中的.  (2)要筛选结果可以先使用where再用groupby或者先用groupby再用having下面看下groupb…

    2022年5月25日
    79
  • [Network]Wireless and Mobile

    [Network]Wireless and Mobile

    2022年1月22日
    46
  • matlab仿真的图片怎么保存_matlab如何导出

    matlab仿真的图片怎么保存_matlab如何导出一种是出来图形窗口后手动保存(这儿又可以分两种):1直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式。2edit——〉copyfigure,再粘贴到其他程序。另一种是用命令直接保存(这里也有两种):1用saveas命令保存图片。saveas的三个参数:(1)图形句柄,如果图形窗口标题栏是“Figure3”,则句柄就是3.(2)文件名。(3)单引号字符串,指…

    2025年11月6日
    1
  • 三角形的重心_三角形重心的六条性质

    三角形的重心_三角形重心的六条性质重心的概念重心的性质

    2022年8月4日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号