简单介绍一下java位运算
2021/11/2 1:39:32
本文主要是介绍简单介绍一下java位运算,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简单位运算介绍
或 | 只要有一个为1,结果就为1。
与 & 两位全为1,结果才为1
非 ~ 对一个二进制数按位取反,即将0变为1,1变0
异或 ^ 两个相应位为“异”(值不同),则该位结果为1,否则为0
异或特殊用法
(1) 与1相异或,使特定位翻转
方法:找一个数,对应X要翻转的位,该数的对应为1,其余位为零,此数与X对应位异或即可。
例如:X=1010 1110,使X低四位翻转,用X^0000 1111=1010 0001即可得到。
(2) 与0相异或,保留原值
位运算应用-变量交换
普通的变量交换方法需要借助第三个变量
如果采用异或则不需要借助第三个变量就可以使交换 code:
System.out.println("--------2.面试问到的异或计算法---------"); System.out.println("原理:a^b^a = a "); int a2 = 1; int b2 = 2; a2 = a2^b2; b2 = a2^b2;//b2 = a2^b2^b2 = a2 a2 = a2^b2;//a2 = a2^b2^b2 = b2 System.out.println("交换后: a2 = "+a2); System.out.println("交换后: b2 = "+b2);
原理
1. ^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1. 2. a^b^a = b
位运算应用
LeetCode
参考LeetCode只出现一次的数字:
136题 https://leetcode-cn.com/problems/single-number-iii/
260题 https://leetcode-cn.com/problems/single-number-iii/
计算机精度的问题
double和float为什么会精度丢失
BigDecimal怎么解决的
这篇关于简单介绍一下java位运算的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程