使用异或运算对交换两个变量的数据
来源:互联网 发布:重庆市网络知识竞赛 编辑:程序博客网 时间:2024/05/17 07:12
#include<stdio.h>int main( ){//利用中间变量进行数据交换// 这种交换方法比较常见,不足是会引入中间变量, int m=6; int n=9; int temp=0; printf("交换之前:m=%d,n=%d\n",m,n); temp=m; m=n; n=temp; printf("交换之后:m=%d,n=%d\n",m,n);//利用加减法进行数据交换?//2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。 int x =5,y=10; //定义两个变量 printf("交换之前:x=%d,y=%d\n",x,y); x = x + y; //x(15) = 5 + 10; y = x - y; //y(5) = x(15) - 10; x = x - y; //x(10) = x(15) - y(5) printf("交换之后:x=%d,y=%d\n",x,y);//3.利用异或运算来交换数据// 利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围 unsigned int a=60; //0011 1100 unsigned int b=13; //0000 1101 printf("交换之前:a=%d,b=%d\n",a,b); //输出a,b的值 a=a^b; //a=a^b=0011 0001 b=a^b; //b=a^b=0011 1100 a=a^b; //a=a^b=0000 1101 printf("交换之后:a=%d,b=%d\n",a,b); //输出a,b的值}
结果:
交换之前:m=6,n=9交换之后:m=9,n=6交换之前:x=5,y=10交换之后:x=10,y=5交换之前:a=60,b=13交换之后:a=13,b=60
阅读全文
0 0
- 使用异或运算对交换两个变量的数据
- 使用异或运算交换两个变量的危险
- 按位异或运算交换两个变量的值原理
- 使用异或运算 不借助临时变量交换两个数
- 深入理解异或运算 xor 的含义——再探不使用加减乘除实现加法运算、不使用额外空间交换两个变量的值
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- C 不引入第三变量交换两个数的值(异或运算符^)
- C/java语言 利用异或运算来交换两个变量的值
- 不使用第三个变量交换两个变量的值之"异或"的实际应用
- 不使用临时变量交换两个变量的值(异或,加减,乘除)
- 在不借助第三方变量情况下实现两个变量的交换(借助于异或运算)
- 利用异或,仅使用两个变量进行交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- java异或运算交换两个数的陷阱
- 异或运算实现两个数的交换
- 常用方法
- 一些与String相关的内容
- Android中的OpenSL ES是如何实现的?
- C#回顾学习笔记二十九:new关键字隐藏父类的方法
- 大数据预科班15
- 使用异或运算对交换两个变量的数据
- CSS相关及一些兼容性问题
- 【OJ相关】validator (UOJ / codeforces)
- 9-22
- NFS网络文件共享服务的配置和排错总结
- Rstudio安装出现问题
- uVa1587 长方体判断
- 大数据预科班作业10
- BZOJ 2002 分块