位运算符的计算
位运算符学习
一、二进制中的源码、反码、补码
- 符号
- 有符号数
用最高位的0和1表示正数和负数,比如
0000000111111100
最 高位是0,所以该数字为正数。
- 无符号数
全部二进制均代表数值。
-
有符号数的性质
- 二进制的最高位是符号位:0表示正数,1表示负数。
- 正数的原码、反码、补码都一样
- 负数的反码=它的原码符号位不变,其他位取反(0变1,1变0)
- 负数的补码=它的反码+1
- 0的反码、补码都是0
- 在计算机运算的时候,都是以补码的方式来运算的。
二、java中的位运算符
-
& 位运算与
-
先转化为二进制,然后相同位数比较。
-
两位都为1 ,结果为1。
-
-
| 或运算符
-
先转化为二进制,然后相同位数比较。
-
只要有一个为1 ,结果为1。
-
-
^ 异或运算符
-
先转化为二进制,然后相同位数比较。
-
两位数不相同 ,结果为1。
-
-
<< 左移符 2<<2
-
先转化2为二进制。10
-
左移2为,后面补0,变为1000.十进制为8.
-
当左移的位数大于等于32的时候,要先对32求余,再根据余数左移。比如左移32,就和左移0位相同。
-
-
>>右移符
-
正数参考上边
-
负数如下图:
-
-
>>> 无符号右移
1.无脑右移就可以,不用管符号。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)