实现两个数字的转换大部分是用中间变量或相加再减的方法。但现在还有一种方法可以实现:
如果定义:int a=1;int b=2;
则可这样转换:
b=a^b;
a=a^b;
b=a^b;
这样a=2,b=1;为什么呢?
a的二进制为00000001,b为00000010;
a^b=00000011;(这里^符号为异或的意思即1^0=1,0^1=1,1^1=0,0^0=0);
将00000011赋给b,b=3;
a=b^a;这样的话那与a相同的部分便会成为0,剩下的便是原来的b的部分。
b=a^b;同理可证。
这样就互换了!!!!!!!!!!
分享到:
相关推荐
异或运算的特点是可以将两个二进制数进行按位异或运算,结果为 1 当且仅当两个二进制数的对应位不同时。 在加密和解密过程中,异或运算可以作为核心算法。通过将密钥和明文进行异或运算,可以生成密文。同样,也...
使用异或运算可以实现一些巧妙的操作,例如交换两个变量的值、加密算法等。 在这个示例中,使用 Java 语言实现了对十六进制字符串的异或运算,通过将十六进制字符串转换为二进制形式,然后进行异或运算,最后将结果...
代码实现使用Java语言,使用FileInputStream和FileOutputStream两个类来读取和写入文件,并使用异或操作来进行加密。 ```java import java.io.*; class FileSecret{ public static void main(String[] args) ...
MAC地址通常是一个6字节(48位)的二进制数,以16进制表示,每两个字符之间用冒号或破折号分隔,例如`00:11:22:33:44:55`。在Java中,我们通常使用字符串来表示MAC地址。 2. **MAC地址校验**: - **校验有效性**...
- 在JavaScript中,异或运算符也是`^`,但在JavaScript中,异或运算的对象可以是任何类型,会先转换成数字再进行运算。 6. **其他用途**: - **内存操作**:在操作系统和低级编程中,异或常用于快速清零一个内存...
### Java基本语法(三)——运算符和类型转换 #### 运算符 在Java语言中,运算符是用于执行特定操作的关键元素之一。本文将详细介绍各种运算符及其使用方法。 ##### 算术运算符 Java中的算术运算符包括加(`+`)、...
- **位运算符**:`~`(按位取反)、`&`(按位与)、`|`(按位或)、`^`(按位异或)、`(左移)、`>>`(右移)、`>>>`(无符号右移) #### 10. 控制流语句 Java 提供了多种控制流语句,包括条件语句、循环语句和...
- `^` 表示按位异或运算符,用于将两个字节合并为一个。 #### 2.2 将16进制字符串转换为byte数组 此方法用于将一个16进制字符串转换为对应的byte数组。 ```java public static byte[] hexString2Bytes(String src...
6. **位异或运算符 (^)**:位异或运算符对两个操作数的每一位执行异或操作。当两个操作数的对应位相同,结果的该位为0;当对应位不同,结果的该位为1。例如,`5 ^ 3`,在二进制表示中进行异或操作后,结果为 `0000 ...
` 输出的结果是6,因为一个数与其自身异或两次等于原数。 #### 七、取反与求反码的区别 在Java中,取反运算符`~`和求反码是不同的概念。 - **取反运算符** `~`:对二进制位进行取反操作,符号位也会改变。 - **...
在实际编程中,if语句经常与其他结构(如else、if...else if...else)配合使用,实现复杂的逻辑判断。 通过这10-19章的学习,读者将对Java的基础语法有更深入的理解,能够熟练运用各种运算符和控制结构编写程序,为...
Java提供了八种基本数据类型,包括六种数字类型(四个整数类型和两个浮点类型)、一种字符类型以及一种布尔类型。 ##### 数字类型 1. **整数类型**: - `byte`:占用1字节,取值范围为-128到127。 - `short`:...
二进制则是计算机内部使用的基础,它只用两个符号(0和1)。十进制转换为二进制的过程通常是通过除以2的算法来完成的,每次将余数保留,直到商为0。最后将所有余数倒序排列,就得到了二进制表示。 对于单一数值的...
在实现加法运算时,我们可能需要先将参与运算的数字转换成符号整数,以便正确处理正负数的情况。在二进制表示中,最高位(符号位)为1表示负数,为0则表示正数。 加法运算在位运算是通过逐位相加并处理进位来完成的...
Java的运算符包括分割符(如逗号、分号、方括号和圆括号)、算术运算符(加、减、乘、除、取余、自增、自减)、关系运算符(大于、小于、等于、不等于)、布尔逻辑运算符(非、与、或、异或、短路与、短路或)、位...
本篇将深入探讨如何在Java中实现这个转换过程,以及相关的编程概念。 一、基础知识 1. 进制系统:十进制是我们日常生活中的数制,它基于10个符号(0-9)。二进制则是计算机内部使用的数制,仅使用两个符号(0和1)...
其中,boolean用来表示逻辑值,char使用Unicode编码,每个字符占用两个字节。整数类型有多种表示方式,如十进制、八进制和十六进制。浮点类型包括float和double,其中double是默认类型。运算时,不同类型之间会自动...
1. 二进制(Binary):二进制只包含两个数字,0 和 1,是计算机最基础的数字系统。 2. 八进制(Octal):八进制由八个数字组成,0-7,常用于简化二进制表示。 3. 十进制(Decimal):我们日常生活中的常规数字系统,...