Java基础-学习笔记04
04 运算符 进制
1. 运算符
逻辑与 & 和 短路与 &&
共同点:两个条件都为true时,结果为true,否则为false。
& 逻辑与:不管第一个条件是否为false,第二个条件都要判断;
&& 短路与:如果第一个条件判断为false,则第二个条件不会判断。
逻辑或 | 和 短路或 ||
共同点:两个条件只要有一个成立,结果为true,否则为false。
| 逻辑或:不管第一个条件是否为true,第二个条件都要判断;
|| 短路或:如果第一个条件为true,则第二个条件不会判断。
逻辑异或 ^
当两个条件的结果相同时,结果为true,否则为false。
赋值运算符
符合赋值符合赋值运算符会进行类型转换
byte b = 3;
b += 2; //b = b + 2;
b++; //b = (byte)(b+1);
2. 原码、反码、补码
二进制:0b或0B开头
十进制:(非0开头)
八进制:0开头
十六进制:0x或0X开头
- 二进制转成八进制
从低位开始,每三位一组,转成对应的八进制数即可; - 二进制转十六进制
从低位开始,每四位一组,转成对应的十六进制数即可; - 八进制转换为二进制
将八进制数每一位,转成对应的三位二进制数即可;
ob11010101 => 0325
ob11010101 => 0xD5
System.out.println(~-2);
分析:
- -2是int型,4个字节,得到-2的原码是 10000000 00000000 00000000 00000010
- -2的反码是 11111111 11111111 11111111 11111101
- -2的补码是 11111111 11111111 11111111 11111110
- 按位取反是 00000000 00000000 00000000 00000001
这是运算后的补码,由于其符号位是0表示正数,所以其对应的原码相同,即,最后结果为 1
System.out.println(~2);
分析:
- 2的原码、反码、补码都是 00000000 00000000 00000000 00000010
- 按位取反 11111111 11111111 11111111 11111101
得到的是结果的补码,需把其对应原码找到- 结果的反码是 11111111 11111111 11111111 11111100
- 原码是 10000000 00000000 00000000 00000011
结果是 -3
-
二进制的最高位是符号位:0表示正数,1表示复数
-
正数的原码、反码、补码都一样
-
负数的反码 = 它的原码符号位不变,其他位取反
-
负数的补码 = 它的反码 + 1, 负数的反码 = 它的补码 - 1
-
0的反码、补码都是0
-
Java中的数都是由符号的
-
计算机运算时,都是以补码的方式来运算的
-
当我们看运算结果的时候,要看它的原码
-
位运算符
<< >>>
低位溢出,高位补0
System.out.println(1 >> 2); //00000001 => 00000000, 即0
System.out.println(4 << 3); //00000100 => 00100000, 即 4*2*2*2 = 32
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)