【剑指offer知识点】Java中位运算的5个常用技巧函数

简介: 【剑指offer知识点】Java中位运算的5个常用技巧函数

[1] 总览


  以下是可以提高代码逼格,而且比较好记的5个位运算技巧目录:

  1、整数n乘以2

  2、整数n乘以2的m次方

  3、判断数字n的奇偶

  4、不用临时变量交换整数n与整数m

  5、求两个整数n和m的平均值

[2] 整数n乘以2


  只适用于整数(负整数、0、正整数):

int f( int n ) { //计算n*2 
     return n << 1 ;
}

浮点数的移位没有意义,因为它的bits都有特殊含义,移位则直接改变本质了。

[3] 整数n乘以2的m次方


  只适用于整数(负整数、0、正整数):

int f( int n, int m ) { //计算n*(2^m)
     return n << m ;
}

[4] 判断整数n的奇偶


  只适用于整数(负整数、0、正整数):

boolean f( int n ) {
     return  (n  &  1 )  ==  1 ;
}

返回true是奇数,返回false是偶数。

[5] 不用临时变量交换整数n与整数m


  只适用于整数(负整数、0、正整数):

m  ^= n ;
n  ^= m ;
m  ^= n ;

首先有个原理需要知道:

若a ^ b = c, 则c ^ b = a, c ^ a = b。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。

[6] 求两个整数n和m的平均值


  只适用于整数(负整数、0、正整数):

int f( int x,  int y ) {
    return  (x +y )  >>  1 ;
}
相关文章
|
20天前
|
存储 Java
Java中的位运算
本文介绍了位运算符的基础知识,包括原码、反码、补码的概念,以及常见的位运算符(如移位运算符 `&lt;&lt;`、`&gt;&gt;`、`&gt;&gt;&gt;` 和逻辑运算符 `&`、`|`、`^`、`~`)的使用方法和规则。通过具体的二进制示例,详细解释了这些运算符的工作原理,帮助读者更好地理解位运算在计算机中的应用。
Java中的位运算
|
2月前
|
存储 设计模式 SQL
[Java]知识点
本文涵盖Java编程中的多个知识点,包括静态与动态代理、基本数据类型转换、设计模式、异常处理、类加载、序列化、ORM框架、IPv4地址分类、编译与解释等。文章详细介绍了每个知识点的原理和使用方法,并提供了相关示例和注意事项。
52 16
[Java]知识点
|
2月前
|
网络协议 Java 物联网
Java网络编程知识点
Java网络编程知识点
65 13
|
4月前
|
Java
java基础(11)函数重载以及函数递归求和
Java支持函数重载,即在同一个类中可以声明多个同名方法,只要它们的参数类型和个数不同。函数重载与修饰符、返回值无关,但与参数的类型、个数、顺序有关。此外,文中还展示了如何使用递归方法`sum`来计算两个数之间的和,递归的终止条件是当第一个参数大于第二个参数时。
39 1
java基础(11)函数重载以及函数递归求和
|
3月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
35 1
|
3月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
37 3
|
3月前
|
安全 Java 编译器
Java基础-知识点(二)
Java基础-知识点(二)
26 0
|
3月前
|
存储 缓存 安全
Java基础-知识点(一)
Java基础-知识点(一)
33 0
|
5月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
93 1
|
5月前
|
存储 运维 Java
函数计算产品使用问题之怎么配置定时触发器来调用Java函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。