C语言不用临时变量交换a,b的值
现在有个题是:
要求不创建临时变量,来交换a,b的值,问有几种办法
首先先来一个创建临时变量交换的
int temp=0;temp=a;a=b;b=temp;
相信大家也都会,哈哈哈,就不多讲了
加减法
接下来这种就是加减法,用数学的思维来解决问题
a=a+b;
b=a-b;
a=a-b;
然后还有一种就是利用计算机二进制的特性,异或操作符进行
异或法
a=a^b;
b=a^b;
a=a^b;
异或^操作符:是一个位操作符,针对于二进制位(比特位)的操作。
规则:两个数在同一个二进制位(比特位),相同为0;不同为1。
异或操作符的一些性质:
任何一个数与自己异或都等于0:
a^a=0;
3.2 任何一个数与0进行异或操作等于它自己:
a^0=a;
3.3 异或运算满足交换律,结合律 :
a^b=b^a;
(a^b)^c=a^(b^c);
C语言不用临时变量交换a,b的值相关推荐
- 不用临时变量交换两个变量的值
在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量. 类似于: temp=a;a=b;b=temp; 这样的语句,如果在没有临时变量的情况下,该如何做呢? 网络上的人们给出了两种方法: 一. ...
- 交换数字(不用临时变量)
编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值. 示例: 输入: numbers = [1,2] 输出: [2,1] 示例代码: class Solution(obj ...
- 不用临时变量,交换两个变量的值
不用临时变量,交换两个变量的值 a=a^b; b=a^b; a=a^b; 或者 a=a+b; b=a-b; a=a-b;
- 不创建临时变量交换两个数,这才是高手
不创建临时变量交换两个数?这才是高手 1.基本介绍 1.代码编写 总结 1.基本介绍 交换两个数,想必大家都很熟悉,也很容易写出来就可以实现,即创建一个临时变量,就可以完成两个数的交换,然后更牛逼的大 ...
- C语言中临时变量写在哪里,C语言中不允许创建临时变量,交换两个数的内容
在C语言中可以通过建立临时变量来实现两个变量的交换,当不允许建立临时变量时,应该怎样实现两变量的交换呢? 假设有两个变量num1和num2:下面通过两种方法进行分析. 方法一:利用加减法.具体算法分析 ...
- 不允许创建临时变量交换两个变量的内容
在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量.如果在没有临时变量的情况下,该如何做呢? 方法一:C语言提供的异或运算就可以实现这样的操作.异或运算符"^"也称&qu ...
- 不用额外变量交换两个整数的值
题目 如何不用任何额外变量交换两个整数的值 基本思路 如果给定整数a和b使用如下三行代码即可交换a和b的值: a = a ^ b b = a ^ b a = a ^ b 如何理解这三行代码的具体功能呢 ...
- C语言异或交换两个数的原理解析-大厂面试题:不使用第三变量交换两个数的值
常用操作交换两个数的值 常用的交换两个数值的方法一般是采用第三个变量,这种方法简单易懂,用代码举例 int main() {//交换两个整形变量int a = 3;int b = 5;int c = ...
- C语言字符型变量的存储和取值
目录 1.问题引入 2.字符型变量的存储 3.字符型变量的取值 4.字符型变量中的-128 5.取值转换图 1.问题引入 我们知道,在C语言中,一个字符型数据占8个bit位,那么当我们定义一个字符型数 ...
最新文章
- delphi ScriptGate 调用JS
- GO语言有哪些优势?怎样入门?
- 手机被偷后如何让小偷不能用
- SSM中使用Mybatis的PageHelper插件实现分页
- AI基础:数据划分、超参数调整、正则化
- 使用 Boost.Multiprecision 来实现高精度高斯-拉盖尔正交积分
- C++11 - sizeof用于类成员
- Python 爬虫学习 系列教程
- 用大白话彻底搞懂 HBase RowKey 详细设计
- oracle ado6,c# ado 连接数据库 六步曲
- NPOI导出excel(带图片)
- adb命令安装apk到手机_安装在手机上自动化测试apk-傻猴
- linux首次安装mysql密码是多少,Linux小白,初次安装MySQL,大神请绕路
- 三星Galaxy Note 20系列将首发Exynos 992:性能超骁龙865
- java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等...
- web前端顶岗实习总结报告_web前端实习报告
- 主流PCB画图软件的对比区别(AD、Pads、Allegro)
- 360浏览器打不开微信的连接服务器,360浏览器打不开网页怎么办-解决360浏览器打不开网页的方法 - 河东软件园...
- 用Mailgun邮寄出去!
- 联想服务器x3250 m5文档,【联想x3250 M5参数】联想x3250 M5系列服务器参数-ZOL中关村在线...
热门文章
- c语言漫函数,漫谈C指针:函数名其实也是指针
- 取部门工资前三高的所有员工 -- sql 面试(三)
- jdk8 stream API
- Redis系列(五)Redis持久化机制
- 关于CRMEB 商城系统商业授权的那些事儿
- 再php用if语句实现成绩,php中if语句怎么编写学生成绩等级
- 存储程序通用计算机设计方案,第1章计算机设计方案基本原理.doc
- CorelDRAW 2019.0安装教程(带安装包)
- 微信小程序影视评论交流平台系统毕业设计毕设(7)中期检查报告
- Bogus,bad length value xxx IP Payload length