1. 判断int型变量a是奇数还是偶数
a&1 = 0 偶数
a&1 = 1 奇数
2. 求平均值,比如有两个int类型变量x、y,首先要求x+y的和,再除以2,但是有可能x+y的结果会超过int的最大表示范围,所以位运算就派上用场啦。
(x&y)+((x^y)>>1);
3. 对于一个大于0的整数,判断它是不是2的几次方
((x&(x-1))==0)&&(x!=0);
4. 比如有两个int类型变量x、y,要求两者数字交换,位运算的实现方法:性能绝对高效
x ^= y;
y ^= x;
x ^= y;
5. 求绝对值
int abs( int x )
{
int y ;
y = x >> 31 ;
return (x^y)-y ; //or: (x+y)^y
}
6. 取模运算,采用位运算实现:
a % (2^n) 等价于 a & (2^n - 1)
7. 乘法运算 采用位运算实现
a * (2^n) 等价于 a << n
8. 除法运算转化成位运算
a / (2^n) 等价于 a>> n
9. 求相反数
(~x+1)
10 a % 2 等价于 a & 1
分享到:
相关推荐
总结来说,这些Java代码示例涵盖了异或运算的基本概念,以及它在数据加密、调试和优化算法中的用途。理解并熟练运用这些知识对于编写高效、安全的Java程序至关重要。在实际项目中,你可以根据需求选择合适的工具和...
例如,将一个十进制数字转换为二进制,我们可以使用模运算和除法,不断将十进制数除以2并记录余数,直到商为0。反之,从二进制转十进制,则需要对每个二进制位乘以2的相应幂次然后求和。对于八进制和十六进制,我们...
3. **Java Flight Recorder (JFR)** 和 **Java Mission Control (JMC)**:这两个是Oracle提供的高级诊断和监控工具,可以详细记录和分析应用程序的运行情况,包括内存使用。 4. **代码内置监控**:像描述中提到的,...
以下是28个Java开发者经常使用的工具类的概述,这些工具类涵盖了广泛的用途: 1. **`java.util.Arrays`**: 这个类提供了对数组进行排序、查找、复制等操作的方法,如`Arrays.sort()`用于排序数组,`Arrays.asList()...
- **位运算符**:按位与(`&`)、按位或(`|`)、按位异或(`^`)、按位取反(`~`)、左移(`)、右移(`>>`)、无符号右移(`>>>`)。 - **赋值运算符**:赋值(`=`)及其组合形式(如`+=`、`-=`等)。 ##### 3.2 语句 - **控制...
Javolution是一个高性能的Java库,提供了集合框架、日期时间、国际化、数学运算、XML处理等功能。它的设计目标是提高Java应用的运行速度和响应时间,特别是在实时系统和嵌入式环境中。Javolution的亮点包括其内存...
同时,数据结构的选择也很关键,例如,使用位运算或链表来高效地表示棋盘状态和棋子位置。 7. **测试与调试**: - 开发过程中,单元测试和集成测试是必不可少的,以确保代码的正确性和稳定性。JUnit是Java中常用的...
此外,可能还需要实现一些高级功能,如历史记录、内存存储等。 在开发过程中,我们可能使用集成开发环境(IDE),如Eclipse、IntelliJ IDEA或NetBeans,它们提供了代码自动完成、调试和项目管理等功能,大大提高了...
2.3 位棋盘的基本运算 12 2.4 Java中位棋盘的实现 13 第三章 基本数据结构——Zobrist键值 17 3.1 比较局面的方法 17 3.2 Zobrist键值的实现方法 17 3.3 Zobrist键值的工作原理及用途 17 3.4 Java中实现Zobrist键值 ...
- **按位与 (&) 和按位或 (|):** 对应位上的按位逻辑运算。 - **短路按位与 (&&) 和短路按位或 (||):** 短路逻辑运算。 #### 45. new 关键字的作用 **知识点概述:** - **创建对象:** 使用 `new` 关键字创建...
这三个关键字在Java中有完全不同的含义和用途。 **详细解释:** 1. **`final`:** - 用于声明不可变的类、方法或变量。 - 用于定义常量,确保数据的安全性和不变性。 2. **`finally`:** - 在异常处理中使用,...
注释,用于解释代码意图或用途的文字,有助于代码的维护和阅读。 ### compile 编译,将源代码转换成机器可执行格式的过程,Java中的编译结果为字节码。 ### constant 常量,其值在程序执行过程中不会改变的变量...
以下是对该部分内容的详细解读,按照知识的类别和用途进行区分。 1. 基础关键字和类型: - Java中的关键字用于执行特定任务,如`public`表示访问权限;`static`表示静态;`void`表示无返回值等。 - 数据类型包括`...
同时,使用Javadoc来记录函数和类的用途,便于其他开发者理解和使用。 综上所述,这个Java拼图游戏项目涵盖了Java GUI编程、图像处理、算法应用、设计模式以及良好的编程实践等多个方面,对于学习和提升Java编程...