今天看到一个题目:定义两个类型位int的对象a,b都在1-20之间。然后在不申请新的内存空间的情况下,交换两个数值。
由于之前一直在做数据解析,看到题目第一时间想到的是将int转化位byte,int是4个byte,所以我们可以将高16位存a,低16位存b。这样就没有申请新的空间并且能够将a,b都保存在int对象中。
那么具体步骤:
int a = 3; int b = 7; //将a左移16位:将00000000 00000000 00000000 0011左移为00000000 00000011 00000000 00000000 //然后在与b进行或运算;(00000000 00000011 000000000 00000000)|(00000000 00000000 00000000 000001111) //得到 00000000 00000011 00000000 00000111 //此时高16位就是a的值,低16位就为b的值 a= ((a<<16)|b); //此时交换ab的值,就只需将a右移16为给b b = (((a)>>16)); //然后将a继续左移16位,再右移16位即可。 a = (((a)<<16))>>16; System.out.println(a); System.out.println(b);
嗯,结果不错a,b的值的却交换了。看一下答案吧,发现答案是如此简单。
只需要三步
1: a=a+b;
2: b=a-b;
3: a=a-b;
相关推荐
### Java移位运算详解 #### 一、基本概念与数据类型范围 在深入探讨Java中的移位运算之前,我们先来了解一下基本的数据类型及其范围。 ##### 1. 基本类型取值范围 Java中提供了多种基本数据类型,如`byte`、`...
Java的移位运算涉及到整数类型数据的二进制位操作,这对于理解计算机底层运作和优化代码至关重要。移位运算主要包括左移运算符()和右移运算符(>>,>>>)。在Java中,所有的整数类型(除了char类型外)都是有符号...
而Java.jpg可能是一个与课程或教程相关的图片,展示了一些移位运算的例子或图解,帮助学习者更好地理解这一概念。 总的来说,Java的移位运算符是编程中不可或缺的工具,它们提供了对二进制位的直接控制,能够实现...
"Java利用移位运算将int型分解成四个byte型的方法" 以下是 Java 中利用移位运算将 int 型分解成四个 byte 型的方法相关知识点: 知识点 1:移位运算 在 Java 中,移位运算是指将一个数字移动到特定的位数,以便...
本资料主要讲解了Java中的运算符,特别是移位运算和逻辑运算,这两部分是理解数据处理和程序控制的关键。 首先,我们来探讨移位运算。Java支持三种类型的移位运算:左移(),右移(>>)和无符号右移(>>>)。左...
4. **byte和char进行移位运算**:当`byte`和`char`进行移位运算时不会发生错误,并且均按照整型进行计算,当计算结果超出`byte`或是`char`所能表示的范围时则进行相应的转换。 - 示例: ```java public class ...
Java 位运算是一种底层操作,它直接作用于整数类型的二进制表示,常用于高效地处理数据。在Java中,所有的整数类型(byte, short, int, long)都是以补码形式存储的,其中最高位是符号位,0表示正数,1表示负数。...
### Java中的位运算知识点 #### 一、位运算概述 位运算是计算机科学中的一个基本概念,它直接针对二进制位进行操作。在Java语言中,提供了多种位运算符来处理二进制数据,这对于优化算法性能、提高程序效率等方面...
示例代码中展示了一些位运算的应用,比如通过位运算符来操作变量的二进制位,演示了逻辑运算符和移位运算符的使用。其中,通过位运算符演示了如何实现加法操作,因为通过位运算可以模拟进位逻辑,进而实现加法。 ...
Java 位运算是编程语言中的一种底层操作,它允许我们直接对整数类型的数据进行按位操作,包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)以及左移()、右移(>>)和无符号右移>>>。这些操作在处理二进制数据、优化...
- `左移位运算,向左移动指定位数,高位补0。 - `>>`:有符号右移位,向右移动指定位数,根据符号位填充0或1。 - `>>>`:无符号右移位,向右移动指定位数,无论符号,高位均填充0。 3. **示例代码分析** - `...
Java移位运算符详解实例 Java移位运算符是Java语言中的一种基本运算符,用于对二进制数进行位移操作。移位运算符主要包括左移位运算符()、右移位运算符(>>>)和带符号的右移位运算符(>>)。这些运算符可以单独...
它首先从`start`字符串中提取出位0、4、10和13,然后通过异或(^)运算生成新的位13(`x13`)。这个异或操作相当于执行了LFSR的线性反馈函数。接着,`start_buffer`用于更新寄存器状态,移除最左边的一位并添加新...
在Java编程语言中,位运算和逻辑运算都用于处理布尔值和整数,但它们在实际操作和行为上有着显著的差异。理解这些差异对于优化代码和深入理解计算机底层工作原理至关重要。 首先,我们来看看逻辑运算符。逻辑运算符...
Java中的位运算符和移位运算在编程中有着重要的作用,尤其在处理底层数据和优化代码性能时。这里我们将深入探讨这些概念。 首先,我们来看位运算符。Java提供了四种基本的位运算符: 1. **按位与(&)**:这个...
从给定的文件信息来看,本文档主要涉及的是文件移位加密与解密技术的C语言实现,这是一项基础但非常实用的加密方法,尤其在早期计算机科学领域中占有重要地位。下面,我们将深入探讨这一主题,包括其背景、原理、...
本文主要介绍了 Java 中幂指数值的运算代码解析,提供了多种解决方案,涵盖了幂指数值的基本概念、Math.pow 函数的使用、移位运算的应用等方面。 一、幂指数值的概念 在数学中,幂指数值是指一个数的指数次方,如 ...
移位运算在处理位操作、数组索引计算、快速乘除等方面非常有用,但需谨慎使用,因为它们可能会导致数值溢出或丢失符号信息。 了解了这些基础知识后,开发者可以更好地理解和编写涉及二进制和移位运算的代码。在实际...