c语言位操作符相关题目之交换两个数的值
文章目录
- 一、题目
- 二、方法1
- 1,思路
- 2,代码实现
- 三、方法2
- 1,思路
- 2,代码实现
- 四、方法3
- 1,思路
- 2,代码实现
- 总结
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目
实现两个变量的交换
输入:a = 5,b = 3;输出 :a = 3 ,b = 5。
二、方法1
1,思路
这个方法就是我们经常遇到此问题想到的空瓶交换,额外创建一个变量开辟一份空间来暂时存储变量。好比下方图片,我有三个碗,一个碗里面放了醋,一个放了酱油,我想将放酱油的碗里面放上醋,放醋的碗里面放上酱油。于是我需要第三个碗,先将酱油放在空碗内,在将醋倒进酱油碗中,在将空碗里的酱油放在醋碗中。
2,代码实现
代码如下(示例):
int main()
{int a = 5;int b = 3;int c = 0;printf("交换前:a = %d,b = %d\n", a, b);c = a;a = b;b = c;printf("交换后:a = %d,b = %d\n", a, b);return 0;
}
三、方法2
1,思路
这个是一个不创建中间变量的方法,但是此方法存在缺陷:如果a和b的很大,但是没有超出整型的大小,a和b的值的和超出了整型的大小,超出整形大小的值之后,有些值就溢出了丢了,这样和就不准确了,导致后面求出的值是错误的,所以这个方法交换得两个数之和不大于整型变量的最小存储值
- 先将a+b的值放在a中,此时a的值变成a+b
- 再将a-b的值放在b中,因为此时a变成了a+b,所以a-b的值等价于a+b-b=a,此时存放在b中的值变成a了。
- 最后一步将a-b的值放入a中,此时a的值还是a+b;b的值变成a了,所以a-b=b,此时存放在a中的值变成b了。
- 通过上面三步我们实现了a和b的交换。
2,代码实现
代码如下(示例):
int main()
{int a = 5; int b = 3; printf("交换前:a = %d,b = %d\n", a, b); a = a + b; b = a - b; //此时b = a + b - b = a; a = a - b; //此时a = a + b - a = b; printf("交换后:a = %d,b = %d\n", a, b); return 0;
}
四、方法3
1,思路
在这里我们采用的方法是
c语言操作符的解法
,在这里我们需要理解下面两个c语言位操作符——按位异或的规律才可以得到正确的解法
- a ^ a = 0,按位异或的规则是按照二进制位进行按位异或,相同的位为0,不相同为1.两个数都相同,相同所有位为0,所以所有数字都等于0
- a ^ 0 = a; 任何数与0异或都等于0,例如3^0 = 011^000 = 011 = 3;
- //a 0000 0000 0000 0000 0000 0000 0000 0101
//b 0000 0000 0000 0000 0000 0000 0000 0011
//^ 0000 0000 0000 0000 0000 0000 0000 0110 a = a^b
//^ 0000 0000 0000 0000 0000 0000 0000 0101 b = a^b = a
//^ 0000 0000 0000 0000 0000 0000 0000 0011 a = a^b = a
2,代码实现
代码如下(示例):
int main()
{int a = 5; int b = 3; printf("交换前:a = %d,b = %d\n", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("交换后:a = %d,b = %d\n", a, b); return 0;
}
总结
上面是有关于交换两个数的三种求法,但是实际中还是应用第一种方法,如果没有硬性要求不能有中间变量建议使用第三种。如果大家还有其他的求解方法,欢迎大家留言小编及时补充。
相关文章:
![](https://i-blog.csdnimg.cn/direct/e5a890ee19854232a4813303df29f801.png)
c语言位操作符相关题目之交换两个数的值
文章目录 一、题目二、方法11,思路2,代码实现 三、方法21,思路2,代码实现 四、方法31,思路2,代码实现 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 实现两个变量的…...
![](https://i-blog.csdnimg.cn/direct/e32411ae37094c05a19e86fb9e027e53.png)
智能家居装修怎么布线?智能家居网络与开关插座布置
打造全屋智能家居。计划的智能家居方案以米家系列为主,智能家居联网方案以无线为主。装修前为了装备智能家居做了很多准备工作,本文深圳侨杰智能分享一个智能家居装修和布线方面的心得与实战知识。希望能对大家的装修有所帮助。 1.关于网络 如果房子比…...
![](https://i-blog.csdnimg.cn/direct/4ae4e34d8c4249e1891122ed8199c357.png)
GD32MCU最小系统构成条件
大家是否有这个疑惑:大学课程学习51的时候,老师告诉我们51的最小系统构成?那么进入32位单片机时代,gd32最小系统构成又是怎么样的呢? 1.供电电路 需要确保供电的电压电流稳定,以东方红开发版为例ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言——循环结构:while、do...while、for
while循环 基本结构 C语言中的while循环是一种基本的循环控制结构,它允许程序重复执行一段代码块,直到指定的条件不再满足为止。while循环的语法结构如下: while (condition) { // 循环体 // 在这里编写要重复执行的代码 } condition …...
![](https://i-blog.csdnimg.cn/direct/d067ed0d58e04d22adc7971f05b3cd69.png)
C#实现最短路径算法
创建点集 double r 200 * 500;double width 1920;double height 1080;int col (int)(r / width);int row (int)(r / height);List<(double, double)> list1 new List<(double, double)>();for (int i 0; i < row; i){var y i * height;if (y < r){va…...
![](https://i-blog.csdnimg.cn/direct/7bc97046081548b386680340850ead2c.png)
Python函数 之 匿名函数
1.概念 匿名函数: 使用 lambda 关键字 定义的表达式,称为匿名函数. 2.语法 lambda 参数, 参数: 一行代码 # 只能实现简单的功能,只能写一行代码 # 匿名函数 一般不直接调用,作为函数的参数使用的 3.代码 4.练习 # 1, 定义匿名函数, 参数…...
![](https://www.ngui.cc/images/no-images.jpg)
深入解析 Mybatis 中 Mapper 接口的实现原理
《深入解析 Mybatis 中 Mapper 接口的实现原理》 在使用 Mybatis 进行数据库操作时,Mapper 接口扮演着重要的角色。它提供了一种简洁、类型安全的方式来与数据库进行交互。那么,Mybatis 是如何实现 Mapper 接口的呢? 一、Mybatis 简介 Myb…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序获取用户头像
微信为了安全更改了许多API接口,属实烦人。这次带来的是微信小程序基础库3.5.0还能使用的获取用户头像方法 按键式 <view><view><button open-type"chooseAvatar" bindchooseavatar"onGetUserImage">获取用户头像</butto…...
![](https://www.ngui.cc/images/no-images.jpg)
uniapp小程序连接蓝牙设备
uniapp小程序连接蓝牙设备 一、初始化蓝牙模块二、开始搜索三、连接蓝牙四、监听特征值变化五、调用示例utils.js文件 一、初始化蓝牙模块 这一步是必须的,在开发项目过程中,初始化蓝牙模块之后,紧接着就要开启一些监听的api,供后…...
![](https://i-blog.csdnimg.cn/direct/9f81bbabbbde464480991fa354d92a9d.jpeg)
AI大模型推理过程与优化技术深度剖析
在人工智能的浩瀚星空中,AI大模型以其卓越的性能和广泛的应用前景,成为了推动技术进步的璀璨明星。本文旨在深入探讨AI大模型的推理过程及其背后的优化技术,为理解这一复杂而精妙的技术体系提供一个清晰的视角。 一、AI大模型的推理过程揭秘 …...
![](https://www.ngui.cc/images/no-images.jpg)
Dubbo 核心概念介绍
Dubbo 是一款阿里巴巴开源的高性能 RPC(远程过程调用)框架,广泛应用于微服务架构中。它主要解决服务治理、负载均衡、故障转移等分布式系统问题。本文将介绍 Dubbo 的核心概念,包括服务提供者(Provider)、服…...
![](https://i-blog.csdnimg.cn/direct/2d2cb06ee0b34e0ebba19115ddada3ca.png)
练习 6.7:⼈们 在为练习 6.1 编写的程序中,再创建两个表⽰⼈的字典,然后将这三个字典都存储在⼀个名为 people 的列表中。
练习 6.7:⼈们 在为练习 6.1 编写的程序中,再创建两个表⽰⼈的字典,然后将这三个字典都存储在⼀个名为 people 的列表中。 要求 遍历这个列表,将其中每个⼈的所有信息都打印出来。 代码 human {shuicc: {first_name: shui,la…...
![](https://img-blog.csdnimg.cn/img_convert/0d6ebfed4d48a46338a720a2bc6d7548.png)
星环科技知识平台TKH:引领企业构建高效AI基础设施,加速数智化转型新纪元
5月30-31日,2024向星力未来数据技术峰会期间,星环科技正式发布其最新人工智能基础设施产品——Transwarp Knowledge Hub星环知识平台(以下简称TKH)。该平台旨在为企业打通从人工智能基础设施建设到大数据、人工智能等研发应用的完…...
![](https://www.ngui.cc/images/no-images.jpg)
嵌入式板级支持包(BSP)80道面试题及参考答案(3万字长文)
目录 解释什么是通用输入输出(GPIO)接口及其在BSP中的作用。 描述SPI接口的主要特点和用途。 说明IC总线协议的工作原理。 如何在BSP中配置一个UART接口? USB设备控制器在BSP中的初始化步骤是什么? 以太网接口如何在BSP中被支持? 什么是SDIO,它在哪些场景下会被使…...
![](https://i-blog.csdnimg.cn/direct/7621a3cac991417d822da81aa5190a1d.png)
如何找回误删的文件?4个常用文件恢复方法!
对于许多用户来说,误删文件是一种常见而令人懊恼的情况。恢复误删文件的重要性在于,它可以帮助用户找回宝贵的数据,避免因数据丢失带来的各种不便和损失。 如何找回不小心删除的文件? 误删数据不知道怎么恢复,会给我…...
![](https://www.ngui.cc/images/no-images.jpg)
在大型企业级应用中,如何优化 XML 数据的存储和检索效率,以满足高并发访问需求?
在大型企业级应用中,优化XML数据的存储和检索效率可采取以下措施: 数据库选择:选择适合XML存储和查询的数据库,如Oracle、MySQL、PostgreSQL等。这些数据库提供了专门的XML存储和查询功能,能够更高效地处理XML数据。 …...
![](https://www.ngui.cc/images/no-images.jpg)
win10 A4000 下使用Xinference来进行大模型的推理测试
创建环境 conda remove --name xinference --all conda create --name xinference python3.10 conda activate xinference 安装: conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia pip install tiktoken sentence-transformer…...
![](https://www.ngui.cc/images/no-images.jpg)
【9-2:代码规范】
算法级思想 代码规范(java) 代码规范(java) 方法参数必须一致,不要出现自动装箱拆箱操作SimpleDateFormat是线程不安全的使用equals注意空指针异常日志 事务场景中如果出现异常被捕时注意回滚不要再finally中使用retu…...
![](https://www.ngui.cc/images/no-images.jpg)
std::filesystem::current_path().generic_string()的bug
这行指令出来会出来大小写的盘符,如D 或者d,似乎随机 #include <iostream> #include <filesystem>namespace fs std::filesystem;bool arePathsSame(const fs::path& p1, const fs::path& p2) {return p1 p2; }int main() {fs::p…...
![](https://img-blog.csdnimg.cn/img_convert/b7f9bd44685928d99756d6a2c9f51b80.png)
Python excel知识库批量模糊匹配的3种方法实例(fuzzywuzzy\Gensim)
前言 当然,基于排序的模糊匹配(类似于Excel的VLOOKUP函数的模糊匹配模式)也属于模糊匹配的范畴,但那种过于简单,不是本文讨论的范畴。 本文主要讨论的是以公司名称或地址为主的字符串的模糊匹配。 使用编辑距离算法进…...
![](https://www.ngui.cc/images/no-images.jpg)
stm32使用单通道规则组ADC
Driver_ADC.c 如果需要关闭adc转换,只需要设置CNT,将其置为0,后面再转换一次就停止了。 #include "Driver_ADC.h"void Driver_ADC1_Init(void) {/* 1. 时钟配置 *//* 1.1 adc时钟 */RCC->APB2ENR | RCC_APB2ENR_ADC1EN;RCC-&g…...
![](https://www.ngui.cc/images/no-images.jpg)
[python][whl]causal-conv1d的python模块在windows上whl文件下载
【模块介绍】 causal-conv1d,即因果一维卷积(Causal 1D Convolution),是一种在深度学习特别是时序数据处理中广泛应用的卷积技术。它主要特点在于其“因果性”,即输出的每个元素仅依赖于输入序列中它之前的元素&#…...
![](https://i-blog.csdnimg.cn/direct/d83e8e2cbb914beb82b9533269a75b7c.png)
介绍 CM3leon,一个更高效、最先进的文本和图像生成模型
近几个月来,随着让机器理解和表达语言的自然语言处理技术以及可根据文本输入生成图像的系统的进步,人们对生成式人工智能模型的兴趣和研究也在加速。今天,我们要展示的是 CM3leon(发音类似于 “变色龙”),它…...
![](https://www.ngui.cc/images/no-images.jpg)
HTTPS和HTTP有哪些区别
两者的主要区别在于安全性和数据加密: 加密层:HTTPS 在HTTP 的基础上增加了SSL/TLS 协议作为加密层,确保数据传输的安全性,即使数据被截获,没有相应的密钥也无法解读数据内容。而HTTP 数据传输是明文的,容易受到攻击。…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker 安装 PostgreSQL
1. 启动 PostgreSQL 容器 docker run --name ffj-postgres -p 5432:5432 -e POSTGRES_PASSWORDCisc0123 -d postgres docker run:启动一个新的容器。--name指定容器名称为 ffj-postgres。-p 5432:5432:将主机的 5432 端口映射到容器的 5432 端口。-e P…...
![](https://i-blog.csdnimg.cn/direct/4fc0674def824ce5979a9fc5c7736ae7.png)
实践致知第12享:如何新建一个Word并设置格式
一、背景需求 小姑电话说:要新建一个Word文档,并将每段的首行设置空2格。 二、解决方案 1、在电脑桌面上空白地方,点击鼠标右键,在下拉的功能框中选择“DOC文档”或“DOCX文档”都可以,如下图所示。 之后࿰…...
![](https://i-blog.csdnimg.cn/direct/beeb4d805182423dbd3f26896670c50f.jpeg#pic_center)
Rust vs Go: 特点与应用场景分析
目录 介绍Rust的特点Go的特点Rust的应用场景Go的应用场景总结 介绍 Rust和Go(Golang)是现代编程语言中两个非常流行的选择。凭借各自的独特优势和广泛的应用场景,吸引了大量开发者的关注。本文将详细介绍Rust和Go的特点,并探讨它…...
![](https://img-blog.csdnimg.cn/img_convert/71c8569263beb918ed773c90bba8f468.png)
2024的开放式耳机排行榜,看这六个耳机选购的小Tips
寻找一款既能聊天又能听歌的耳机并不容易,但是开放式耳机可能会是一个理想的选择。与传统的入耳式耳机相比,开放式耳机可以让你更加自然地与周围环境互动,并且不容易掉落。当然,在市场上选择一款适合自己的开放式耳机也是至关重要…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA-报表模糊搜索询易实现
背景: 一般文件报表经常会需要搜各个表头对应内容,如果支持全部类型切换搜索,操作起来就不够便捷。而且这个报表是测试自己用的,准确性可以不用太要求,所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。 方法一:解析搜…...
![](https://i-blog.csdnimg.cn/direct/79812ea52f224c26a6e96ae164b091c0.png)
牛客 7.13 月赛(留 C逆元)
B-最少剩几个?_牛客小白月赛98 (nowcoder.com) 思路 奇数偶数 奇数;奇数*偶数 奇数 所以在既有奇数又有偶数时,两者结合可以同时删除 先分别统计奇数,偶数个数 若偶个数大于奇个数,答案是偶个数-奇个数 若奇个数…...
![](https://common.cnblogs.com/images/copycode.gif)
建设网站项目的目的/软件开发流程
原文转载于:https://www.cnblogs.com/qicosmos/p/3517166.html并行库充分利用多核的优势,通过并行运算提高程序效率,本文主要介绍c中两个知名的并行库,一个是intel开发的TBB,一个是微软开发的PPL。本文只介绍其基本的常用用法&…...
![](/images/no-images.jpg)
昆明出入最新规定/湖北短视频seo营销
1、执行如下语句获取删除语句 SELECT CONCAT( drop table , table_name, ; ) from information_schema.tableswhere table_schema数据库名 and table_typebase table 2、拷贝语句,然后复制到nvicat进行执行 转载于:https://www.cnblogs.com/javabg/p/10083945.html…...
![](https://img-blog.csdnimg.cn/20201226102610707.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY2NjU2Ng==,size_16,color_FFFFFF,t_70)
如何做旅游计划的网站/企业文化ppt
Scala 方法与函数引言1、方法1.1 语法1.2 方法参数1.3 方法调用2、函数3、方法与函数的区别与联系3.1 区别3.2 方法转换为函数引言 Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说…...
![](/images/no-images.jpg)
做网站刷东西/营销网店推广的软文
如果存在自增列那就比较麻烦,需要写明需要插入列的具体名称,比较麻烦,可以用下面的语句实现。 --删除主键 ALTER TABLE 表名 DROP constraint 主键约束; --删除ID alter table 表名 drop column ID; --新增ID alter table 表名 add ID in…...
![](http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/1502729.jpg)
app开发公司杭州/网络舆情优化公司
经常有人问我有关“大数据”的问题,而且多半情况下我们似乎是在各种不同的抽象和理解级别进行交谈。实时 和高级分析 之类的词语频频现身,并且我们总是立即开始谈论产品,这通常并不是一个好主意。 希望将类似本文的技术文章发送到您的收件箱吗…...
![](https://img-blog.csdnimg.cn/20200503195212213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNDM3MTIy,size_16,color_FFFFFF,t_70)
php网站建设与维护/正规seo排名多少钱
基数排序基本思想 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 这样说明,比较难理解,…...