Java 按位运算符(&,|,^,>>,<<,>>>)
时间:2022-07-22
本文章向大家介绍Java 按位运算符(&,|,^,>>,<<,>>>),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
&(按位与)
定义:针对二进制,只要有一个为0,就为0。
2 & 5 = 0
2的二进制:00000000 00000000 00000000 00000010
5的二进制:00000000 00000000 00000000 00000101
|(按位或)
定义:针对二进制,只要有一个为1,就为1。
2 | 5 = 7
2的二进制:00000000 00000000 00000000 00000010
5的二进制:00000000 00000000 00000000 00000101
^(按位亦或)
定义:针对二进制,相同的为0,不同的为1。
2 ^ 5 = 7
2的二进制:00000000 00000000 00000000 00000010
5的二进制:00000000 00000000 00000000 00000101
2 ^ 3 = 1
2的二进制:00000000 00000000 00000000 00000010
3的二进制:00000000 00000000 00000000 00000011
~(按位非)
定义:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
~8 = -9
8的二进制:00000000 00000000 00000000 00000100
~8的二进制:11111111 11111111 11111111 11110111
因为高位是1,所以该数为负数。<font color ="#CC0000">负数的补码是其绝对值的原码取反,末尾再加1。</font>
末尾减1得反码:11111111 11111111 11111111 11110110
将反码取反:00000000 00000000 00000000 00001001 = 9
<<(向左位移)
定义:针对二进制,转换成二进制后向左移动3位,后面用0补齐。
3 << 1 = 6
3的二进制:00000000 00000000 00000000 00000011
3左移后进制数:00000000 00000000 00000000 00000110
>>(向右位移)
定义:针对二进制,转换成二进制后向右移动3位。
3 >> 1 = 1
3的二进制:00000000 00000000 00000000 00000011
3右移后进制数:00000000 00000000 00000000 00000001
>>>(无符号右移)
定义:忽略符号位,空位都以0补齐。
-1 >>> 1 = 2147483647
-1的二进制(补码表示法):11111111 11111111 11111111 11111111
右移后:01111111 11111111 11111111 11111111
- DeepMind发文回顾2017:AlphaGo团队已迎战下一个重大挑战
- [你必须知道的.Net]读书笔记--浅clone与深clone
- Python基础语法学习整理
- 通过部分感知深度卷积网络进行人脸特征点定位
- [你必须知道的.Net]读书笔记--override与new在继承中的区别
- gitlab配置邮件通知功能操作记录
- 微信小程序价值思考:手机端的CS-BS迁移
- Linq2Sql数据实体外部更新时“不能添加其键已在使用中的实体”的解决办法
- 微信小程序:字体保持大小
- 在为知笔记中使用JQuery
- 在为知笔记中使用JQuery
- Python学习笔记(1):列表元组结构
- 6步创建一个通用机器学习模板
- Python学习笔记(2):数据库访问
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- PHP PDOStatement::rowCount讲解
- Python 如何对文件目录操作
- Python字符串split及rsplit方法原理详解
- Laravel框架文件上传功能实现方法示例
- python中如何写类
- 什么是PHP7中的孤儿进程与僵尸进程
- Python爬虫小例子——爬取51job发布的工作职位
- 详解PHP素材图片上传、下载功能
- Python enumerate() 函数如何实现索引功能
- python打开文件的方式有哪些
- PHP实现二维数组按照指定的字段进行排序算法示例
- python怎么自定义捕获错误
- Codeforces Round #677 (Div. 3)
- PHP PDOStatement::fetchObject讲解
- PHP PDOStatement::getAttribute讲解