首页 > 编程语言 >【剑指offer知识点】Java中位运算的5个常用技巧函数

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

时间:2023-01-17 11:36:43浏览次数:41  
标签:知识点 Java offer int 适用 整数 乘以 return 正整数


[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 ;
}


标签:知识点,Java,offer,int,适用,整数,乘以,return,正整数
From: https://blog.51cto.com/u_15942590/6012009

相关文章

  • java时间格式24小时制12小时制
    Calendar类也可方便的区分24和12小时机制Calendardate=Calendar.getInstance();date.get(Calendar.HOUR_OF_DAY);//得到24小时机制的date.get(Calendar.HOUR);//得到......
  • 如何使用Java异步编程(多线程CompletableFuture)
    1、创建异步线程任务根据supplier创建CompletableFuture任务//使用内置线程ForkJoinPool.commonPool(),根据supplier构建执行任务publicstatic<U>CompletableFuture......
  • Java 8 中 List 转 int[]
    原文地址:List(或ArrayList)转换为int[]数组终于搞懂了importjava.util.ArrayList;importjava.util.List;//list转为数组publicclassMain{publicstaticv......
  • Java进阶路线
    阶段一计算机基础Java入门学习 Day2:注释、标识符、关键字/数据类型/类型转换/变量常量/运算符/包机制、JavaDoc/2023-1-12Java基础语法 Day3:Scan......
  • java static 静态变量
    目录视频链接javastaticstatic基础static修饰方法的应用场景工具类工具类实例javastatic应用注意事项null视频链接静态变量:https://www.bilibili.com/video/BV17F411T......
  • Java项目笔记
    使用lombok成员方法输出日志@SpringBootApplication@Slf4jpublicclassReggieTakeOutApplication{publicstaticvoidmain(String[]args){SpringA......
  • 前端知识点整理第七天(【js】indexof/【js】 iframe有什么优点、缺点)
    'helloworld'.indexOf('')//返回0'helloworld'.indexOf('',0)//返回0'helloworld'.indexOf('',3)//返回3'helloworld'.indexOf('',8)//返回8'hell......
  • Java实现字符串和零宽字符之间的相互转换
    如题,上网找了一圈发现都是用JavaScript实现的,只好自己将JavaScript实现的代码转为Java代码实现://String->零宽字符publicstaticStringstrToZeroWidth(Stringstr){......
  • idea运行别人的java项目需要注意的地方
    常规java项目的配置1.假设有两层路径,要进入到第二层,才用右键打开第一层第二层2.在ProjectStructure中配置输出文件夹的路径3.修改编译的方式,javac或者eclipse4......
  • 05.Java流程控制
    Java流程控制用户交互ScannerJava提供了一个工具类,可以获取用户的输入。Java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners......