基础知识02-运算符
常见运算符
优先级 | 运算符分类 | 结合顺序 | 运算符 |
由
高
到 低 |
分隔符 |
左结合 |
. [] ( ) ; , |
一元运算符 | 右结合 | ! ++ -- - ~ | |
算术运算符 移位运算符 | 左结合 | * / % + - << >> >>> | |
关系运算符 | 左结合 | < > <= >= instanceof(Java 特有) = = != | |
逻辑运算符 | 左结合 | ! && || ~ & | ^ | |
三目运算符 | 右结合 | 布尔表达式?表达式1:表达式2 | |
赋值运算符 | 右结合 | = *= /= %= += -= <<= >>= >>>= &= *= |= |
位移运算符
运算符 | 含义 | |
---|---|---|
<< | 左移运算符,将左边的对象想做移动运算符右边指定的位数 | |
>> | 右移运算符,将右边的对象向位移运算符右边指定的位数。使用符号扩展机制,如果值为正,则高位补0,如果为负,则高位补1 | |
>>> | 无符号位移运算符,也即是,无论对象是正是负,都是向高位增加0 |
System.out.println(Integer.toBinaryString(15));
System.out.println(Integer.toBinaryString(15<<2));
System.out.println(Integer.toBinaryString(15>>2));
System.out.println(Integer.toBinaryString(-15));
System.out.println(Integer.toBinaryString(-15>>2));
System.out.println(Integer.toBinaryString(-15>>>2));
00000000 00000000 00000000 00001111
00000000 00000000 00000000 00111100
00000000 00000000 00000000 00000011
11111111 11111111 11111111 11110001
11111111 11111111 11111111 11111100
00111111 11111111 11111111 11111100
逻辑运算符
位运算符是对二进制位进行的相关操作
位运算符 | 含义 |
---|---|
! | 取非运算 |
& | 与位运算 |
竖线 | 或运算符 |
^ | 异或运算符 |
异或运算符
A | B | A^B |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
int a = 15;
int b = 2;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(a^b));
System.out.println(Integer.toBinaryString(~a));
1111
1101
11111111 11111111 11111111 11110000
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏