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

到此就结束了。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Loadlibrary 失败的原因

    Loadlibrary 失败的原因  今天调试公司的游戏程序时,发现Loadlibrary总是调用失败,查看加载的动态库路径完全正确,为什么还是会加载失败呢?莫非是这个被加载的动态库本身有问题,我用工具查看了其依赖性,发现没问题,难道是该动态库依赖的动态库有问题?我继续查看该动态库依赖的动态库依赖性果然是这样。

  • 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)

    最简单的基于FFMPEG的视频编码器(YUV编码为H.264)本文介绍一个最简单的基于FFMPEG的视频编码器。该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据。编码器代码十分简单,但是每一行代码都很重要,适合好好研究一下。弄清楚了本代码也就基本弄清楚了FFMPEG的编码流程。目前我虽然已经调通了程序,但是还是有些地方没有完全搞明白,需要下一步继续探究然后补充内容。本程序使用最新版的类库(编译时间为2014.5.6),开发平台为VC2

  • scratch编程小游戏——黄金矿工

    黄金矿工的玩法就是操控一个不断摆来摆去的钩子去挖出黄金,现在我们就来用scratch编一个黄金矿工首先新建好变量:矿车要画出许多的造型:代码:钩爪的绳索是这个游戏最为复制的一点,方法是移动后画出一条线,返回时用背景一样的颜色来覆盖,我们首先来画出造型:红色的是中心位置代码如下:(此代码需要用到一部分自定义,不懂的见文章末尾链接)自定义部分是这个代码的核心:接下来是黄金,造型的话要画出三个:大、中、小各一个代码如下:黄金代码是程序中非常重要的一环,一定不要有差错现

  • R语言plot参数_plot函数参数

    R语言plot参数_plot函数参数最近用R语言画图,plot函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅。plot(x,y=NULL,type="p",xlim=NULL,ylim=NULL,log="",main=NULL,sub=NULL,xlab=NULL,ylab=NULL,ann=par("ann"),axes=TRUE,fra…

    2022年10月15日
  • int使用规则_single是什么数据类型

    int使用规则_single是什么数据类型先说结论吧,方便快速查询验证。总结区别int类型大小为8字节int8类型大小为1字节int16类型大小为2字节int32类型大小为4字节int64类型大小为8字节go语言中的int的大小是和操作系统位数相关的,如果是32位操作系统,int类型的大小就是4字节;如果是64位操作系统,int类型的大小就是8个字节取值范围int8:-128~127int16:-32768~32767int32:-2147483648~214

  • MySQL多表关联查询优化

    MySQL多表关联查询优化背景最近在对运营报表导出进行优化,总结了一些多表关联查询优化的点记录一下。避免临时表通过Explain分析SQL语句,尽量不要使用到临时表。GROUPBY(Explain具体详解,可以看这篇博客)最容易造成使用临时表,GROUPBY与临时表的关系:  1.如果GROUPBY的列没有索引,产生临时表.  2.如果GROUPBY时,SELECT的列不止GROUP…

发表回复

您的电子邮箱地址不会被公开。

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