请选择 进入手机版 | 继续访问电脑版
查看: 423|回复: 2

[红石研究] 正负数乘法器与除法器 - 计算器相关

[复制链接]

15

主题

186

帖子

93

积分

Lv.3 矿物能手

UID
118065
小麦
30
金锭
344
下界之星
0
发表于 2017-10-1 16:09:31 | 显示全部楼层 |阅读模式
本帖最后由 Netro777 于 2017-10-1 16:09 编辑

前言


之前做了负数加减器,这次该发乘法器和除法器了

存档


*在帖子的最下面


原理


大家都知道乘法和除法在十进制里怎么做,但二进制呢,其实一样的,只不过计数方式不同而已

乘法器的核心为与门:


2017-10-01_15.07.57.png


除法器的核心为减法器:


2017-10-01_15.08.35.png


计算是否为负数的核心为异或门(同号得正,异号得负):


2017-10-01_15.08.44.png


乘法器


首先乘法器的核心为与门,因为1x1=1,1x0=0,0x1=0,0x0=0

所以说只有两边输出端都为1时才得1,其他的都为0,这就是与门

然后我们再想想乘法是怎么做的,也就是把某一个乘数拆分成几个一,几个十,几个百等跟另一个乘数相乘,

最后再将所有积相加就是得数

在乘的过程中,我们需要进行移位,所以才有了下面的移位器:


2017-10-01_15.21.04.png


与门:


2017-10-01_15.22.21.png


加法器:


2017-10-01_15.22.51.png



符号计算:


2017-10-01_15.23.57.png


最后将得数和符号汇集起来就是得数:


2017-10-01_15.24.39.png


得数为:-11100001(-225)


除法器



除法器的核心为减法器,为什么呢?因为要减啊

除法的步骤(十进制):


落<-移<-减<-乘(商)


(二进制):


移<-减(并商1)<-比较


二进制就比十进制简单了很多,因为二进制不需要乘,而十进制还得利用99乘法表...

这里是除数,因为它待会会变成减数,所以它在上面:
2017-10-01_15.31.54.png

这里是被除数,因为要每一位数地去比较,所以是分开着的:
2017-10-01_15.32.51.png

这里是得商的地方,它连着减法器,因为减法器只能大-小,如果小-大就会出bug,但那样后这里的红石火把就会灭掉(就像现在)

如果是大-小,也就是商1,那么减法器就可以正常运作,火把会亮起来,灯也会跟着亮起来,也就商了1:
2017-10-01_15.33.56.png

商这里连着活塞,如果商1,活塞推出,中继器也会激活红石

如果商0(就像现在),活塞收回,中继器不会激活红石,但红石火把将会激活,也就是不够减,保存到下次去除:
2017-10-01_15.37.23.png
2017-10-01_15.52.59.png
2017-10-01_15.53.10.png

这里要移位(1->10):
2017-10-01_15.56.32.png
这里继续连通,下一次还要作为除数:
2017-10-01_15.58.58.png
经过4次这整套循环之后,得出商(红石灯的亮与否,亮为1,不亮为0):
2017-10-01_15.55.20.png
还有余数:
2017-10-01_15.55.30.png
还有符号:
2017-10-01_15.55.39.png

以上就是关于正负数乘除法器的内容,不要忘记下载存档哦





乘法器除法器.zip

459.72 KB, 下载次数: 4, 下载积分: 金锭 -1

记得下载哦

666

12

主题

64

帖子

30

积分

Lv.2 石器学徒

UID
1665959
小麦
2
金锭
155
下界之星
0
发表于 2018-2-13 13:40:08 来自手机 | 显示全部楼层
好复杂,我感觉学了两年的红石白费了

0

主题

5

帖子

1

积分

Lv.1 新手木匠

UID
188882
小麦
0
金锭
17
下界之星
0
发表于 2018-2-13 21:58:33 来自手机 | 显示全部楼层
好麻烦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部