软妹裙子吧 关注:195贴子:1,852

【申请贴】渣渣申请加入trp

只看楼主收藏回复

1l 1+1=2(别的计算方式太卡)


回复
1楼2017-01-30 22:53
    首先是数据输入,输入的方式当然是直接输入bcd(0自然没必要输入)


    然后通过这里汇集到一起,输出

    这里是说明是否有信号的一个信号,也汇集起来,输送过去

    通过这条线传递过去。

    如下是决定这条信号是输入小数部分还是整数部分的


    如果输入整数部分,那么就在这里变成脉冲信号,进行处理

    通过这里,我可以进行信号的转移--如果你输入了一个1,想把它变成12,而一般我们都是从左往右写,所以就要移动1。这里我移动的方式是上一位输入下一位,然后上一位清零,延迟如下图。我需要做到上一位给下一位,然后清零,然后再下一位输入,需要把握好延迟。虽然延迟很长,但是输入两个之间的距离可以是0,所以还是不是很长。




    回复
    3楼2017-01-30 23:03
      第七、第八位有一点问题,所以我做了这个防止出问题


      然后是小数部分,输入小数点了以后,小数点的信号会把整数模式转化为小数模式,使得整数无法输入而小数可以输入(反向的方式是输入运算符号)


      这个信号控制整数与小数的通断。

      如果那里可以输入,他就会被运送到这个橡木的数据桥梁上,然后被活塞记录


      这里决定1-9的数位,哪一个可以输入,每来一次有数字来了的信号,这里就会移动一位,让下一个输入。没有的时候默认这样,移一位就到了第一位

      允许通过的位进入这个t触发器,被寄存下来。


      回复
      4楼2017-01-30 23:09
        如果整数位或小数位的最后一位有数字,但是还想输出,这里会阻止输出


        正负号的转变是通过一个rs锁存器(也就是输入负号无法撤销);当有计算方式来的时候,会先把信号输入下面的t触发器,然后清空信号,连接到了这个bcd转bin上去。
        如下是整数bcd转bin,运用的方式是abcd=10(10(10a+b)+c)+d;当然,我的整数是9位的

        如下是小数bcd转bin,使用吸管触压缩的满五加三器,9位小数算出34位来(因为绝大多数十进制小数都是
        2进制无线循环小数,这样比较精确,再加上总共是64位一些地方比较方便)。

        运算方式一共有6种,分别是加、减、乘、除、平方、平方根。

        这个是运算方式的计算码,共8位,上4位是有用处的,下面4位区别类似东西的;上四位中,前两位是运算方式位(第一位使用两个数计算1,一个数0;第二位使用前面的数(使用两个数计算的是前面的和后面的(如+)计算1,使用后面的数计算0(两个数是后面的两个数,如log_a b)

        这边是显示屏码,到显示屏的时候再说

        通过线路运到这里,分开用左边和用右边计算。

        这个线路是分开使用前面或后面数的,前面输入左边,后面输入右边



        回复
        5楼2017-01-30 23:22
          被分开的信号通过两边分别输入到合适的方位


          由于运算顺序位必定有至少一位是1(+-01,×÷10,其他11,所以可以判定这里是否有信号,如果这里有运算方式,就会阻止信号的进入。


          而数字是通过正负号至少有1位是1(正数10负数01),如果第一位没有数字,就输入第一位;



          如果第一位有信号,且第二位没有信号,那么就可以输入第二位。



          (我做这么高的原因是我以后可能用这个做表达式计算器)
          等于号的输入


          回复
          6楼2017-01-30 23:31
            如果这里有信号,输出的时候就会输出这里的信号;否则不会输出。

            运算符号同理

            通过无延迟中继器,使得所有的信号输出时间均相同。
            通过无延迟中继器,使得输入任何一位的信号均同时,让它在0.1s的运算位输出中,能有效输出
            这里是用来鉴别运算方式的,由于输出信号同时,所以可以鉴别,如果正确,就可以打开了

            这里也通过无延迟中继器,否则运算位需要太长的脉冲

            如果有运算方式来,就会打开这里,使得信号导出。

            然后这里把被无延迟中继器隔开的信号弄到一起,就可以计算了

            如下是加减混合计算器


            回复
            7楼2017-01-30 23:42
              这里是判定是加还是减的,因为+是11010000,-是11010001,所以在前几位正确的情况下,只需要看最后一位,接一个t触(能被清零信号还原的)就行

              加法来了的信号会在4秒后打开出口,6秒左右后清零这一块t触发器(此时出口已经锁上)

              这个可以算负数,方法是,负数=1000...0-该数(比如-5是-1 0...0101,呢就变成1 1...1011),相加,减去负数个数的100...0,然后有一个特征位决定正负,另一个决定是否运算溢出)




              如果运算溢出,就在这里阻止信号的倒出,输出一个error信号,同时命令方块说运算溢出(不知道啥时候破坏了所以放回去)


              回复
              8楼2017-01-30 23:49
                下面是乘法,乘法是我观察乘法计算式观察出来的算法(雾)百度的逻辑
                这时把下一位信号传递到这来的萤石

                这个是移位看是否有加的信号决定

                这个是与门,如果下面一位是1,那么乘数导出至下一个全加器,否则不导出




                在全加器这里被加上,看下一位有没有加数

                最左边的是输出的信号,由是否有×信号决定,延时4分钟(本计算器不输出计算过程);十字指向的是清零信号,延时4分钟10秒(最大延迟),如果你不想忍了,你可以点击结束运算按钮,如果这里正在算,就会给中间的无延迟中继器发出脉冲信号,使得立即被打开,不久清零)

                这里是输出,共计输出34位小数

                3*7=21计算成功

                通过这里导回去

                这个是正负号的计算,负负得正所以用一个异或门,然后输出


                回复
                9楼2017-01-30 23:57
                  这个是除法器的延迟,延迟6分钟(因为能算出98位来)

                  这里是被除数输入

                  由于卡,这里输出了一些莫名其妙的数字(我算的是0除1(保护电路)啊)

                  出现了这里这个非常神奇的情况

                  还有漂浮的红石

                  蜜汁中继器(存在了10秒左右)

                  除法器也是百度的逻辑来实现,这里是减法器,减去的全部都是除数的补码


                  这里是除数的传递,还有一个移位


                  回复
                  10楼2017-01-31 00:02
                    wifi被关了,未完待续


                    回复
                    来自Android客户端11楼2017-01-31 00:04
                      如果减得过,输出减以后的结果,原信号阻止;如果减不过,输出原结果,减的结果被阻挡,但是,不知道为啥,进位特别快,比算出结果都快,那么就会输出1111111导致许多全加器一起计算,极大拖慢电脑速度,所以除法器只在小的时候测试过。下两图是是否阻止的


                      由这里传递给两个地方看是否阻止

                      这个是否阻止也作为结果的一位输出,总计98位

                      全部输出到这里,等待输出,前34位是运算溢出

                      这里是保护信号的有无

                      同时,除法器有第一个数学错误:除以0,方法是所有除数或门,如果是0,输出,然后计算器就知道,error了
                      下面是乘方器,乘法器移动过去的,就是自己乘自己


                      在这里把上面的信号传递给下面


                      收起回复
                      12楼2017-01-31 07:20
                        平方根是左边的运算,需要从左边输入,所以这个也需要做出一些调整(图1、2);平方根用的是coffee的算法,减法器和乘100+1器如下,结构和除法器差不多(图3-6);停止运算也是有的,不过和除法器差不多,别指望它能多快算出来;总延迟是84秒(图7);导出的是最后一个的被减数(区块没加载,图8);导出以后,通过活塞转移(图9)


                        回复
                        来自iPhone客户端13楼2017-01-31 09:14
                          res部分:res是上一个输出,输入如图一R(显示屏上勉强挤下了res);两个是反的,因为看的方向相反,为了bin转bcd可以理解,所以就要翻过来,电路如图2;(活塞有bud,放了活塞更新)res核心部分电路如图3-8,图三是输入,由于正负号来得最慢,所以先暂存一下,等正负号来了以后,清空上一次res信号,打开使它输入,输入完了以后,清空本次暂存信号;当按下res按钮,就可以输出res信号(不清零),然后作为一个信号输出;当刚计算完时,直接输入一个用前面的数计算的可以带来res信号,不过不建议这么用,最好是3+res而不是+3(无法显示)


                          回复
                          来自iPhone客户端14楼2017-01-31 09:29
                            bin转bcd整数部分不用说,还是吸管的;小数部分自己压的满八减三器(和吸管的一样大);(图1-2)为了保证正确,加上显示屏也是9位.9位,所以要对信号进行处理。图三是对第34位小数信号的处理--0舍1入,一个全加器的一半就可以完成;然后是四舍五入(11位以后舍去,对第十位),满5判定和满五加三器一样(图4),然后如果这一位是9,且上一位也有进位,就把它变成15,就可以+1,否则只是输出,这样通过一个进位链实现四舍五入(图5-6),然后是把信号反过来,同样是因为看着不一样,非常。。。壮观(图7),然后下面也要反过来


                            收起回复
                            来自iPhone客户端15楼2017-01-31 09:55
                              然后是对0信号的处理,显示屏上显示-000000002.000000000显然是不符合人们通常书写方式的,应该是-2,所以要把0去掉。图1:整数位上的0去掉,如果一位前面全是0,那么这位的一个特征信号就被打开,显示屏无法显示(进位链实现),第一位一定显示;图2:小数位去0,后面全是0显示屏无法显示(同样进位链),如果小数位没有数字,不显示小数点;图3:负号显示,如果是负,那么进位链可以进位;如果该位是最后一个没有数字的位数,那么显示(这一位0,下一位1)


                              回复
                              来自iPhone客户端16楼2017-01-31 10:01
                                图1是一个rs锁存器,当等于号输入时进入运算状态,运算结果正负号停止运算状态,当进入运算状态时,通过粘液块放出“CALCULATING”,然后图三是...播放--无-.-..-...-无的循环;图4是一个活塞轮,模拟旋转。注意是图5的方式可以作为无bud的普通活塞


                                回复
                                来自iPhone客户端18楼2017-01-31 14:02
                                  woc数电大触


                                  收起回复
                                  来自Android客户端19楼2017-01-31 21:33
                                    这里是单像素显示器。从一楼可以看出,1显然不是通过七段数码管,所以是通过单像素显示器,我用的是矿车,这是一种方法,还可以是镍触的那种,不过我当时没注意还有这种方案。2是信号输出,有的地方可以用刷铁塔的布局,有的地方就不行,所以延迟差距较大。图3是一大堆t触,可以用来储存信号(显然不可能在计算器中,给你持续新的信号);图4是输出信号的方式,除了延迟比较大(但都相同)的缺点以外,我觉得应该是比较简单的一种密集信号输出方式;图5是通过延迟的调整,保证其同时进入,那边有关闭打开两种模式,关闭时中继器指向玻璃无法充能,打开时指向海晶砖可以进入;图6是别样的t触--需要错开,但是下一行会影响上一行,所以输入的时间需要错开,135同时输出,246再输出(如图9),但是246是正常信号,135是1t脉冲,所以要加沙子让它自然下落;最后那里然后我实在是没办法了那里如果不用观察者的话,真的无法清零了,它只是一个信号的传递;观察者会只响应1t信号上升下降沿一次,可以当作一个完整的中继器使用;然后中继器唯一能布线的地方是活塞的bud位,所以需要离我们较近的一排活塞更新它。图7是信号的下传:首先上面推出,那么本来和中继器差一个的红十块就被推倒了那上面被输出,而没有信号的就是放海晶石的被推出以后,不会有变化,就形成了有的亮,有的不亮的数字。最后一个是一个有无信号的输出,有无信号影响着是否可以输入


                                    回复
                                    来自iPhone客户端20楼2017-01-31 21:44
                                      这里是有无信号的处理,当且仅当上一位有数字,这一位没有数字的时候,这一位才可以输入(图1)和负号进位链类似;如果可以输入,那么下面收回,上面压下去;如果不能输入,那么上面收回,下面压下去(图3-6),显然,这是一个abba时序,那么用图2就可以实现。这样,就能实现每输入一次移动一下的效果,就能显示一楼样式。


                                      收起回复
                                      来自iPhone客户端21楼2017-01-31 21:49
                                        图1是bcd数字信号的输入,和图三差不多,都是一堆萤石;图2是bcd转dec,用的是穷举,需要注意的是,没有信号的位置要加上强充能否则会出问题,图3是信号的转移,就是1接12接2;然后如果一直可以输出,下降沿时会有奇怪的信号,所以就加了一个4t脉冲进行输出防止输出,0-9正常,-+/*等总计也有十个,所以复制过去就行,注意一下那边的信号输入正确就行。图5的没有脉冲发生器的线路是清零线路,当输入一个信号,会使t触活塞全部推出、收回,会有一点卡,有时还会卡出几个活塞臂来==然后清零略有信号时间差,所以信号也是一点点的没有的,就能造成图10的壮观效果。0输入用1010代替,否则任何时候都输出0屏幕被0挤爆了


                                        回复
                                        来自iPhone客户端22楼2017-01-31 22:08
                                          图1:从左到右小数点,停止运算,输出上一次信号,记录本次数据,输出记录的数据,清空已记录,清零,res那里说过R了这里不多说,磨制花岗岩是(图2-3)M,第一步打开res信号,第二步关闭输出至计算器,第三步打开输出至存储器。输出已存储信号是闪长岩(图4),就是打开信号(无需清零),磨制闪长岩(图5)是清零信号,一个脉冲统一清空;磨制安山岩和安山岩是停止运算和清零,停止运算早就说完了,就是瞬间打开;而清零清零的部分只有bin转bcd输入(会很卡的),除法和平方根的锁定式bug的输入。


                                          回复
                                          来自iPhone客户端23楼2017-01-31 22:27
                                            有整体图吗?还有这事6则计算器吗?


                                            收起回复
                                            来自Android客户端25楼2017-02-01 11:38
                                              这规模好大。。是几位计算器?


                                              收起回复
                                              来自Android客户端26楼2017-02-01 16:28


                                                回复
                                                来自Android客户端27楼2017-02-02 09:30
                                                  渣渣...渣新问大触一句,大触您花了多久


                                                  收起回复
                                                  来自Android客户端28楼2017-02-02 15:07
                                                    收起回复
                                                    来自iPhone客户端30楼2017-02-02 22:08
                                                      有关这个计算器,对于计算部分,除了体积、延迟以外,还有一个性质被我更加注意。因为我需要算出98位除法,47位平方根和128位乘法,所以,我注重的是它的自堆叠性,就是如何自己移动几下,就能组成完整的运算器。虽然平方根不能简单堆叠(乘除法可以),但是也可以通过几下clone完成,其中只需要加几个中继器。乘除法所有部分完全相同。


                                                      收起回复
                                                      来自iPhone客户端31楼2017-02-02 22:28
                                                        你的qq号是多少,先加新手群吧 230149236


                                                        收起回复
                                                        32楼2017-02-03 20:21
                                                          楼主你的作品可能有一些bug?
                                                          我进去按了2没反应 再按一下6 就出现一些奇怪的东西了


                                                          然后我试了很多次 好像都不能显示正确的数字 清零按钮也没用 运算法则的符号也是现实一些错误的东西 计算按钮好像也是没有反应。。
                                                          是不是显示屏出了问题?还是操作不对?我进存档就直接对数字按了


                                                          收起回复
                                                          33楼2017-02-03 21:14