原码、反码、补码以及位运算符
对于有符号的而言:
- 二进制的最高位是符号位:0表示正数,1表示负数(口诀0——>0,1——>-)。
- 正数的原码、反码、补码都是一样的(三码合一)。
- 负数的反码 = 它的原码符号位不变,其他位取反(0——>1,1——>0)。
- 负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1。
- 0的反码、补码都是0。
- Java没有无符号数,换言之,Java中的数都是有符号的。
- 在计算机运算的时候,都是以补码的方式来运算的。
- 当我们看运算结果的时候,要看它的原码。
位运算符
按位与 & :两位全为1,结果为1,否则为0。
按位或 | :两位有一个为1,结果为1,否则为0。
按位异或 ^ :两位一个为0,一个为1,结果为1,否则为0。
按位取反 ~ :0——>1,1——>0。
案例:
>>(算数右移)、<<(算数左移) 和 >>>(无符号右移)运算规则
- 算数右移 >> :低位溢出,符号位不变,并用符号位补溢出的高位
- 算数左移 << :符号位不变,低位补0。
- “>>>” : 逻辑右移也叫无符号右移,运算规则是:低位溢出,高位补0。
- 没有 <<< 符号。
案例:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码