计算机进行加减乘除的原理

您所在的位置:网站首页 计算机中的and运算是什么 计算机进行加减乘除的原理

计算机进行加减乘除的原理

2024-06-12 20:51| 来源: 网络整理| 查看: 265

数学里面的加减乘除都是建立加法上面的。

减法:A - B = A + (-B) 乘法:A * B = B 个 A 相加 除法:A / B = A 可以减去多少个 B,又因为减法就是加法。 所以,得出结论,只要加法,就会减法、乘法、除法。

下面来看看计算机是如何进行算术运算的:

加法:比如 4+5?

计算机只认识0和1,它不知道4还有5,计算机的逻辑就是二进制,我们要把4 + 5 转换为 二进制。

4 0000 0100 5 0000 0101 + ———————— 9 0000 1001

计算机内部操作原理 第一步,判断有那几位不同,也就是进行异或操作,相同取0,不相同取1.

0000 0100 0000 0101 —————— 0000 0001 -------- ①

为什么要进行这些操作呢?

对于0和1,有这三种情况: 0+0 无变化 0+1 等于一 1+1 有进位 三种情况,0+0对数值没有变化,剩下的无非就是两种情况,一是1+0;二是1+1.

第一步的异或运算就是对1+0的情况进行操作。

进行** 异或 操作的原因就是要把单独的1给弄出来,保持那几个位不变,因为1+0绝对等于1,所以进行异或**操作之后,我们就可以知道那几个位是不同的,那几个位相加之后还是1,我们想把相加之后是1的位拿出来。

思考:如果没有进位,异或之后之后就是结果吗。想一想为什么呢??后面有我自己的思考。 第二步,解决1+1 的进位问题,把有一个0+1的情况剔除出去,这里使用“与”运算。

0000 0100 0000 0101 —————— 0000 0100 ------- ②

第三位的时候为1,说明第三位的时候两个都为1,相加的话会有进位的情况。

第三步,向左移动一位。

对②向左移动一位,得到 0000 1000 --------③

第四步 解决了1+1的进位问题还有1+0 的问题之后,对③和①进行相加。(对③和①进行相加的原因是,对1+0和1+1的情况的合并) 相加的步骤就是对第一步到第四步循环

① 0000 0001 ③ 0000 1000 异或 ———————— 0000 1001 ---------④ 转换为10进制就是9.

与运算

0000 0001 0000 1000 —————— 0000 0000

无进位,运算结束,④就是最后的答案。

减法:4-5=?计算机的实现原理。

4-5 其实就是 4+(-5)

第一步,异或运算,负数是用补码来进行运算的。

0000 0100 1111 1011 —————— 1111 1111 --------- ①

第二步,进行"与"运算

0000 0100 1111 1011 —————— 0000 0000

没有进位,运算结束,答案就是为①。

1111 1111为补码,转化为原码,符号位不变,其他位取反,再加上1.得到 1000 0001,转化为十进制,也就是-1。

乘法这里不做讨论,就是多个书相加。 除法: 5 / 3 = ?

上面说到,除法其实就是 一个数 能减去 另一个数 多少次,减法本质上又是加法。所以运算过程还是一样的。

5/3 其实就是 5- (+3*n + m) = 0,n代表5里面有多少个3,m代表余数。

第一步,进行“异或”运算

0000 0101 1111 1101 —————— 1111 1000 --------①

第二步,进行“与”运算

0000 0101 1111 1101 —————— 0000 0101 --------② 结果不为0,进行第三步运算。

第三步,进行左移一位。

0000 1010 -------③

第四步,③+①,同样先进行“异或”

1111 1000 0000 1010 —————— 1111 0010 --------- ④

第五步,“与运算”,针对的是原来的③和①,(因为我们分析的是③和①的1+0 还有 1+1情况,所以每一次“与”运算针对的都是相加的两个数,“异或”后的数先留着。)

1111 1000 0000 1010 —————— 0000 1000 不为零,左移一位,得到 0001 0000 -------⑤

⑤+④ 第六步,异或运算

1111 0010 0001 0000 —————— 1110 0010 --------⑥

第七步,“与“运算。

1111 0010 0001 0000 —————— 0001 0000

不为零,说明有进位,左移一位,得到 0010 0000 ------⑦

第八步,⑥+⑦,异或 运算

1110 0010 0010 0000 —————— 1100 0010 ------⑧

第九步,“与“运算。

1110 0010 0010 0000 —————— 0010 0000

不为零,说明有进位,左移一位,得到 0100 0000 ------⑨

第十步,⑧+⑨,异或 运算

1100 0010 0100 0000 —————— 1000 0010 --------⑩

第十一步,“与“运算。

1100 0010 0100 0000 —————— 0100 0000

不为零,说明有进位,左移一位,得到 1000 0000 ------(11)

第十二步,⑩+(11),异或 运算

1000 0010 1000 0000 —————— 0000 0010 --------(12)

第十三步,“与“运算。

1000 0010 1000 0000 —————— 1000 0000

不为零,说明有进位,左移一位,得到 0000 0000 ------(13)

第十四步,(12)+ (13)

0000 0010 0000 0000 —————— 0000 0010 -------(14)

第十五步,“与“运算。

0000 0010 0000 0000 —————— 0000 0000

为零,(14)就是答案。转换位十进制 0000 00010 就是2,也就是5除以一个3还有 2,2不够除,就是余数,所以5/3 = 1 … 2。

思考题:如果没有进位的话,那么两个数每相同的位就是0和1,都是两者相加后的结果就真是 0和1 异或 后的结果,所以,如果没有进位的话,其实第一步 异或 后的结果就是答案。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3