计算机--加法的实现

计算机–加法的实现

本例采用数值:

4–>100

5–>101

前置知识

1.与(&) 或(|) 非(~) 异或(^)

(双目运算) 两个数按位进行比较,如果相同的位均为1,则结果为1,否则结果为0.
    100
    101
    ----------(&)
    100(双目运算) 两个数按位进行比较,如果相同的位有一个值为1,则结果为1,否则结果为0.
    100
    101
    -----------(|)
    101(单目运算) 将一个数按位进行反转,0变成11变成0.
    100        101
    --------------------(^)
    011        010
异或(双目运算)  两个数按位进行比较,只有相同的位一个为1,一个为0,结果才为1,否则为0
    100
    101
    -----------异或(^)
    001
    

2.左移(<<)右移(>>)

左移(<<) 二进制数按位向左移动,最低位补0
    100  <<1  -->000
    101  <<1  -->010
右移(>>) 二进制数按位向右移动,最高位补与之前最高位相同的数
    100  >>1  -->110
    101  >>1  -->110## 加法的实现

加法的实现

第一步:异或,求出不需要进位的结果
 0000 0100
 0000 0101
--------------异或(^)
 0000 0001
第二步: 与运算,判断进位,若结果为0,则不需要进位
 0000 0100
 0000 0101
--------------(&)
 0000 0100   
第三步: 将与运算的结果,左移一位(21)
 0000 0100 << 1 -->0000 1000
第四步:异或 计算结果
 0000 0001
 0000 1000
--------------异或(^)
 0000 1001
第五步:与运算检验 将第一步与第三步结果进行与运算判断进位 如果结果为0,则上一步为正确结果,否则转到第三步继续进行运算
 0000 0001
 0000 1000
--------------(&)
 0000 0000 

参考

【狂神说】最通俗易懂的计算机底层教学,二进制到汇编学习!--------https://www.bilibili.com/video/BV1ni4y1G7B9?p=10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值