[游戏攻略]《图灵完备》“无符号小于”关卡

关卡描述

搭建一个电路,当第一路输入严格小于第二路输入时,输出1。
注意,在本关中,输入应被视作无符号整数。

过关思路

在这里插入图片描述
我们知道在计算机中数字都是由二进制表示的。对于8位无符号数,各个数位从高到低分别代表128,64,32,16,8,4,2,1这些十进制数。
那么当我们需要比较两个数的大小时,可以清晰地想到,通过比较每一位的大小最后把结果进行汇总。先抛开别的事实不谈,专注于两个位之间的比较:
要求前者严格小于后者。

第一位第二位结果
000
011
100
110

res = (!a) * b

细节说明

这样我们就能得到第一张图:
在这里插入图片描述
这里我把两个八位输出用分线器分开,从上到下是从低到高的八根线。右侧的OR输出判断结果。
但是这里有个非常重要的问题:
如果我最高的一位就能出现严格小于的情况,那我剩余的其他位实际上根本不用看
除此以外还要确保剩余7位都是的结果都是输出0的

接下来说明最重要的一个环节:
逻辑处理部分的一个切片
靠上的一块称为第n层,下面的那块是第n+1层。
第n层的#1触点激活表示n+1层及以上层无法判断出两数大小,需要第n层来定夺。即#4触点与#1触点连接,方便AND门输出结果。
#2触点是两个数的同或结果,如果激活则意味着这一层无法判断出两数大小,需要第n-1层来定夺。第n层的#3触点与第n+1层的#2触点连接,表示这个数前【8-n】位都是相等的。

#1触点系列的生成逻辑:
下图为最高位(第八层)对于#1触点数据的生成方式,XNOR是同或门。
在这里插入图片描述
当第8位两个数相同时,第7层的#1触点激活。
理解地抽象一点就是说
在这里插入图片描述

我们本质上是在把一个高位数如果解决不了的问题就往低位数传递

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值