php二进制整数相加怎么解决_谈谈二进制(二)——四则运算

0. 序

上一篇 【谈谈二进制(一)】 中,我们花了巨量的篇幅,从最基本的计数开始,认识了各种进制的原理,接着通过对我们最熟悉的十进制的分解组合,推演了其他进制和十进制之间的相互转换过程。 本篇将继续深入二进制,来探究一下二进制的四则运算过程,也就是加、减、乘、除,看看二进制和十进制在计算上又有多少差异。

1. 加法

1.1 整数

加法一般是四则运算中首先被提及的,它是计数这一基础行为的延申,从一个一个地累加,延申到一堆一堆地相加,使计数这一行为提升了一个维度。按照上一篇文章的推演逻辑,我们依然从十进制开始,首先探究一下十进制的加法。 我们取两个十进制数: 62185 ,我们用简单的口算就能算出来他们俩的和是 247 ,但这个运算过程是怎么样的呢?我们仔细想一下刚才在计算时大脑的计算过程,然后来看看小时候初学加法时用到的竖式表达式:

4202374b5c0a834e0be9483108d1602a.png

从上式中我们可以看到,这个加法的整个过程其实分为了四步:
  1. 个位相加,得到的结果没有进位,依然是个位;

  2. 十位相加,6 + 8 = 14,进位了,因为是十位的相加结果,所以进到百位上,因此十位上结果是4,百位上是1

  3. 百位相加,这里百位只有185162的百位是0,所以是0 + 1 = 1

  4. 最后,把上面三步得到的结果再进行相加,数字不存在的空白处都看作是0,最终得到了247这个结果。

总结上面十进制的加法过程,其实就是两个数字从低位开始相加,如果有进位,就将进的位数加到下一位的计算结果上,然后重复这个过程,直到两个数字的所有位数遍历完成。 在上一篇文章中我们提到过,不同进制之间的区别几乎仅仅是进位方式的区别,所以上面这套加法法则在十进制数上成立,那么在二进制上自然也是成立的。我们取两个二进制数字 1011110 ,把它们相加:

a1c6bc7051b1279047683492a90ae1eb.png

得到了 10011 这个结果,我们将三个二进制转化成十进制验证一下: 1110 = 14101 = 510011 = 19 ,完全正确。 当我们熟悉了二进制的计算过程后我们会发现,其实二进制的加法计算要比十进制更简单,因为二进制的最低位的计算只有三种: 1 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值