C#基础学习-交换两个数字的值

本文介绍了三种在不使用额外变量的情况下交换两个整数的方法,包括通过加减运算、位运算以及一种较为复杂的数学技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //有两个数字10、20,编写程序交换两个数字的值        

  

int num1 = 10;
            int num2 = 20;
            #region 第一种


            int temp = num1 + num2;
            num2 = temp - num1;
            num1 = temp - num2;


            #endregion


            #region 第二种


            //+- 相当于 |(或)^ (异或)
            //加法 计算机中 0010+ 0001=0011
            //减法 0010-0001=0001
            //或运算 | 规则:只要有一位为1 结果就为1 0|0=0 0|1=1 1|1=1 1|0=1
            //位运算  二级制每一位操作0010|0001=0011
            //异或 ^ 规则: 相同是为0相异为1 0010^0001=0011 
            num1 = num1 | num2;
            num2 = num1 ^ num2;
            num1 = num1 ^ num2;


            #endregion


            #region  第三种


            int a = 10;
            int b = 20;
            a = b + (b = a) * 0;
            //b = (a) + (a = b) * 0; 都可以改变过来
            //代码从左往右执行 从上至下执行
            //变量在内存中是压栈的处理过程
            //这种方法它只针对数字
            //可移植性差  太抽象 不好理解


            #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值