位运算的理解

day5:位运算的理解


!!!前提注意!!!

!!!有无符号数!!!

无符号数

没有符号的数,写出来多少就是多少

有符号数

最高符号位代表正负数:1(负数) 0(正数)


位运算:计算机现在可以存储所有的数字(整数,浮点数,字符)的运算

作用

1.找出最高效的运算方式

2.底层的调试器,通过位运算来查看CPU的状态

运算方式

1.与门(or gate)

1011 0001
1101 1000
----------与运算
1001 0000

2或门(or gate)

1011 0001
1101 1000
----------与运算
1111 1001

3异或运算(xor)

1001 0010
0100 1011
---------异或运算
1101 1001

位运算的加减乘除

加法(4+5)

**计算机计算时不会直接进行加减乘除**
0000 0100
0000 0101
---------+
0000 1001
需要通过运算法则来实现运算
#实现原理
#第一步,异或运算,如果不考虑进位,异或运算可以直接结出结果
0000 0100
0000 0101
---------异或
0000 0001
#第二步,与运算(判断进位,如果与运算结果为0则没有进位)
0000 0100
0000 0101
---------与运算
0000 0100
#第三步,将与运算的结果左移一位得到0000 1000(进位后的结果)
#第四步异或运算(第一步与第三步的结果进行运算)
0000 0001
0000 1000
----------异或
0000 1001
#第五步,与运算(判断进位,如果结果为0,没有进位),验算
0000 0001
0000 1000
----------与
0000 0000
#所以最终的结果为 0000 1001

减法(4-5)

减法需要用到补码
将4-5理解成4+(-5)
4->0000 0100
5->0000 0101
-5为5的补码->1111 1011
0000 0100
1111 1011
----------加法的过程
1111 1111
其中1111 1111是-1的补码
将其转化为原码则为1000 0001
#所以最终的结果为1000 0001
```![](https://img2022.cnblogs.com/blog/2978308/202210/2978308-20221004193811558-458272636.png)
![](https://img2022.cnblogs.com/blog/2978308/202210/2978308-20221004193831549-2129389267.png)
posted @   idle_code  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示