通过位异或来交换a,b的值和通过中间变量交换a,b的值

//通过位异或来交换a,b的值

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a=20,b=10;
    a=a^b;
    b=b^a;
    a=a^b;
   
    printf("%d",a);
    printf("%d\n",b);

return 0;
}

//通过c来交换

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a=20,b=10,c;
    c=a;
    a=b;

b=c;
    printf("%d",a);
    printf("%d\n",b);

return 0;
}

时间: 2024-10-25 11:26:40

通过位异或来交换a,b的值和通过中间变量交换a,b的值的相关文章

不用中间变量交换A和B的值

public class SwapAB { public static void main(String[] args) { // 两种值交换的方式,用中间变量空间复杂度高于不用中间变量,但时间复杂度要低于不用中间变量. // 常规写两个值的交换 int a = 100; int b = 200; System.out.println("初始值 a=100 b=200"); // 中间变量 int c; // 复制给中间变量,临时存 c = a; // 把b的值赋给a. a = b;

不使用中间变量交换变量a、b的值的延伸

基础 为简单起见,用(x,y)表示变量a和b在某一时刻的一组值. 以交换a和b的值为例 (a,b)-->(a+b,b)-->(a+b,a)-->(b,a) 引申一 如果是改变三个变量的值呢?比如(a,b,c)-->(c,a,b)(向右循环移一位) (a,b,c)-->(a+b,b,c)-->(a+b,b+c,c)-->(a+b,b+c,a+b+c)-->(c,b+c,a+b+c)-->(c,a,a+b+c)-->(c,a,b) 自然想到n,比如(

不使用中间变量交换两个数. 求平均数考虑溢出

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> //不使用中间变量交换两个数的值 void exchange_num(int *a, int *b) { ①* a =*a + *b;    //适用范围广 * b = *a -* b; * a =* a - *b; ②* a = (*a )*(*b); * b = (*a )/(*b); * a = (*a ) / (*b);//当两个数有

友情链接交换注意事项及哪些友情链接不能交换

SEO站长都知道网站外链的重要性,其中最重要的外链就是友情链接,友情链接可以提升网站的权重,以及提高网站的关键词排名,高质量的友情链接,(权重高的友情链接)一条可以比几十条甚至上百条的外链还要有效果.那么SEO站长在交换友情链接的注意事项及不能交换友情链接有哪些呢? 一.如何判断友情链接质量? 1.第一个看网站收录情况,双方的网站收录不能差距太大,收录相当.2.第二个网站的权重(br)以及pr值要求也要相当尤其是百度的权重一定要相当或者略高.3.第三个是友情链接的数量,有也就是说一般对方的网站的

json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

主要内容: 一.json相关概念 二.json字符串转换成json对象 (字符串-->JSON对象) 三.json对象转换成字符串(json对象-->字符串) 四.将值转换成字符串(值-->字符串) 五.字符串转成值(字符串-->值) 同步的交流学习社区:http://www.mwcxs.top/page/425.html 一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想

TTL值的含义以及与域名DNS TTL值的区别

TTL值的含义以及与域名TTL值的区别 本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/201004/ttl-yuyuming-ttl.html TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量.TTL是IPv4包头的一个8 bit字段. 什么是TTL?TTL是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量.在很多情况下数据包在一定时间内不能被传递到目的地.解

网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.

本文记录了不使用中间变量交换2个变量的value,很多的网络留言说是直接异或运算就可以了,而且效率很高,是真的吗? 关于这个问题,网络上面有很多的解释,3种方法,我这里给比较一下各自的优缺点,然后简单分析一下汇编代码,分析代码如下: #include <stdio.h> void swap1(int &a,int &b) { int temp = a; a = b; b = temp; } void swap2(int &a,int &b) { a += b;

&lt;10&gt; 无参无返回值+ 无参有返回值函数的定义+有参无返回值函数定义+ 有参有返回值函数定义+函数的参数+函数的参数传递过程

无参无返回值: 1 #include <stdio.h> 2 3 4 /** 5 * 定义一个无参无返值函数 6 * 7 */ 8 void print_line(){ 9 10 printf("-----------------\n"); 11 12 } 13 14 15 16 int main(int argc, const char * argv[]) { 17 //调用函数 18 print_line(); 19 20 return 0; 21 } 无参有返回值函数

按某一字段分组取最大(小)值所在行的数据 分拆列值(转) 日期的推算

数据如下:name val memoa 2 a2(a的第二个值)a 1 a1--a的第一个值a 3 a3:a的第三个值b 1 b1--b的第一个值b 3 b3:b的第三个值b 2 b2b2b2b2b 4 b4b4b 5 b5b5b5b5b5*/--创建表并插入数据:create table tb(name varchar(10),val int,memo varchar(20))insert into tb values('a', 2, 'a2(a的第二个值)')insert into tb v