C语言不通过第三个变量交换a、b两数数值的技巧

int a = 8, b = 9;
a = a^b;
b = b^a;
a = a^b;

时间: 2024-10-10 04:15:27

C语言不通过第三个变量交换a、b两数数值的技巧的相关文章

不借助第三个变量交换a,b两个变量值

从一个面试题说起... 一个很经典的答案是通过异或来解决 a=a^b; b=a^b; a=a^b; 关键字 [ "异或", "逻辑运算符", "乔治·布尔", "香农" ] 先决条件 0为假,1为真 插曲>>>如果读到"0为假,1为真",心底肯定略过了,这谁都知道的啊... 但是如果是写出来,但是找不到出处.即使常识也不太肯定了... "^":对应逻辑运算异或(XOR)

PHP中不用第三个变量交换两个变量的值

相信大家在PHP面试或者学习中经常会遇到这个问题就是“不用第三个变量来交换两个变量的值”,今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个变量的值. 第二种方法呢,稍加思考我们就会用到PHP中的函数来实现 第三种方法呢,我们来采用PHP中提供各种字符串分割函数来实现. 简单的题目不同的思想就会有不同的解法,期待更多的答案.

交换两个变量以及不用第三个变量交换两个变量

这个可能网上一搜一大把一大把的,可是今天我看到了一个新的写法,所以就写这篇文章记录一下,不不知道百度有没有,没去搜索! 方法1:这是最简单,也是最常用的一个方法! int n1 = 10, n2 = 20; int tmp = n1; n1 = n2; n2 = tmp; Console.WriteLine("n1={0},n2={1}", n1, n2); Console.ReadKey(); 方法2:算术运算 //交换两个变量,不使用第三个变量 int n1 = 10, n2 =

不使用第三个变量交换两个变量的值

交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换. 下面给出几种不使用第三个变量的办法: 1.利用运算交换两个变量值 a = b - a; b = b - a; a = b + a; 2.位运算 通过异或运算来交换值 a=a^b; b=a^b; a=a^b; 3.交换指针地址

不借助第三个变量交换两个数值类型变量的值

原文地址:http://blog.csdn.net/web_hwg/article/details/75045689 方法一 最简单的方法是用一个临时变量 var a = 10, b = 20; var temp = a; a = b; b = temp; 方法二 让其中一个变量变成一个与a和b都有关系的值 a = a + b; b = a - b; a = a - b; 或者 a = a - b; b = a + b; a = b - a;

不准引入第三个变量交换两个数的值

int x=1; int y=3; x=x+y; y=x-y; x=x-y; 如果 int x=1000000; int y=3000000; x=x^y; y=x^y; x=x^y; 一个数据异或两次得到数据本身 例如5^10^10的值还是5. 这个技术还可以用在加密解密里面.

$ a = 1; $b = 2; 如何不用第三个变量 交换 $a 跟 $b 的值

list($a, $b) = array($b, $a);

【C语言】不使用大小于号,求出两数最大值

//不使用大小于号,求出两数最大值 #include <stdio.h> #include <math.h> double Max(double a, double b) { double q = sqrt((a-b)*(a-b)); return ((a + b) + q) / 2; } int main() { printf("(5,8)大的数为:%.0f\n", Max(5, 8)); printf("(0,4)大的数为:%.0f\n"

两个变量交换的四种方法

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. class TestEV //创建一个类 { public static void main(String[]args) { int x =5,y=10; //定义两个变量 int temp = x; //定义第三临时变量temp并提取x值 x = y; //把y的值赋给x y = temp; //然后把临时变量temp值赋给y System.out.println("x="+x