计算机CPU加,减,乘,除的原理

计算机CPU加,减,乘,除的原理

计算机CPU加,减,乘,除的原理

对于计算机实现加减乘除的研究记录,如有错误还请指出

1.加法

计算机的加法就如同我们的数学计算一样,只不过是进制变成了2进制,需要满2进一,如5+3,二进制表示则是

0101

0011

-----

1000

加法的实现由按位加和(异或)和进位(与)两部分组成,内部的实现就是加法器

如上所示的加法器并没考虑上一位的进位问题,因为称为半加器

如果考虑进位,则需要把进位也参与运算

这样的结构就称为全加器

多个全加器组合就实现了我们计算机的加法

2.减法

计算机减法其实可以转化为加法,像指针时钟一样,我们调整时间+1,可以选择顺时针增加1,或者逆时针减少11,最终都能达到调整时间的目的

这里有个模的概念,

例如对于指针时钟来说,它的模是12,

对于电子时钟来说,它的模则是24,

对于二进制8位运算来说,它的模就是128

对于可以取模的运算,减法都可以转化为加法

对于计算机的运算也是一样,如8位运算,除去一位符号位,进行运算减1,可以转化为加127来实现,这也是计算机实现减法转换加法的原理

了解减法还需要先了解原码,反码,补码的概念

原码:带符号位的,其余位表示数值

反码:正数的反码是原码,负数的反码是除了符号位之外,其余位取反

补码:正数的补码是原码,负数的补码是反码加一

计算机的运算普遍采用的都是补码,采用补码的优势是可以将减法转化为加法,这样可以使用加法器实现减法,降低电路复杂度,提高计算效率。另外使用补码也可以避免+/- 0的问题

如-1+3二进制表示则为

10000001

00000011

---------

取反码则为

11111110

00000011

---------

取补码则为

11111111

00000011

---------

00000010

结果为2

其实补码运算得出结果后还需对结果进行一次取补操作,这是为了对符号位的处理,如-3+1

补码计算则为

11111101

00000001

---------

11111110

结果是-126

我们需要对结果再取一次补码

11111110 -> 10000001 -> 10000010

结果是-2

部分的疑问和理解:

1.取补码问什么要加1?

取补码相当于模减去原码(不考虑符号位),既时钟问题的向前拨动1,和向后拨动11,

8位二进制,1的补码则为127

取反,0000001取反为1111110(不考虑符号位),既1和126,需要反码+1才能得到补码

2.计算机为什么使用补码进行运算?

可以避免对于+/-符号的判断,不管是加法还是减法都是加法运算,还能避免+/-0的歧义,而且还能多表示一个负数(如8位数的-128)

全都转化为加法还能降低电路复杂性,提高计算速度

3.乘法

计算机乘法是移位和累加实现的,每位的数字代表需要移动几位,如5*3,二进制表示

00000101

00000011

---------

00000101

00001010 //移位

---------

00001111

4.除法

计算机除法的实现是移位和累减,首先对齐除数和被除数,对齐后相减,

如果结果大于等于0,则记录商1;如果结果小于0,则记录商0

之后右移,结果作为下次运算的被除数,并将商左移

循环这个过程,直到除数移回原位,并记录余数

00001110

00000010

---------

00001110

00001000 // 左移对齐

---------

00000110 // 记录商1 (0001)

00000100 // 右移

---------

00000010 // 商左移并记录商1 (0011)

00000010 // 右移

---------

00000000 // 商左移并记录商1 (0111)

// 余数为0

因为减法是加法实现的,因此除法的效率是最慢的

图片资源来源:

【从零开始自制CPU之学习篇07】最简单的ALU—全加器 - 闪客sun - 博客园 (cnblogs.com)

相关文章

RackNerd美国圣何塞VPS测评:三网往返直连联通电信延迟低,看视频16万+速度
还怎么读
365平台被黑

还怎么读

⌛ 06-27 👁️‍🗨️ 2050
ppt裁剪功能在哪里?为什么没有裁剪选项?
365bet365.com

ppt裁剪功能在哪里?为什么没有裁剪选项?

⌛ 07-02 👁️‍🗨️ 636
学生可以骂老师,老师不能骂学生,哪家“王法”?
365平台被黑

学生可以骂老师,老师不能骂学生,哪家“王法”?

⌛ 07-06 👁️‍🗨️ 1924
lol慎个皮肤? lol慎皮肤哪个特效好?
365平台被黑

lol慎个皮肤? lol慎皮肤哪个特效好?

⌛ 06-28 👁️‍🗨️ 6198
学字《说文解字》原文及注解
365提供参考号BAVF

学字《说文解字》原文及注解

⌛ 07-05 👁️‍🗨️ 740