c语言 位与 加法,通过C语言的位运算实现加法操作

14c6a194c73244d3a43e8edc94cf7de6.png

分享本文,希望能起到抛砖引玉的作用,加深朋友对位运算以及计算机底层的认识。

有如下十进制的加法运算:13 + 9 = 22

我们像这样来拆分这个运算过程:不考虑进位,分别对各位数进行相加,结果为sum:个位数3加上9为2;十位数1加上0为1;最终结果为12;

只考虑进位,结果为carry:3 + 9 有进位,进位的值为10;

如果步骤2所得进位结果carry不为0,对步骤1所得sum,步骤2所得carry重复步骤1、 2、3;如果carry为0则结束,最终结果为步骤1所得sum:这里即是对sum = 12 和carry = 10重复以上三个步骤,(a) 不考虑进位,分别对各位数进行相加:sum = 22; (b) 只考虑进位: 上一步没有进位,所以carry = 0;(c) 步骤2carry = 0,结束,结果为sum = 22。

把上面的运算过程放在二进制中试试。

13和9的二进制分别为:0000 11010000 1001

①不考虑进位,分别对各位数进行相加得到sum:‍0000 0100

②当考虑进位,有两处进位,第0位和第3位,只考虑进位的结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值