2025-11-08 06:39:15
我来看这个问题,用与非门搭或门得这么弄:拿两个与非门当输入,先让每个输入自己跟一个与非门撞车,再拿这两个撞完的车再撞进第三个与非门。比如拿A和B当输入,先让A和B各自跟与非门干架,得到A非和B非,让这两个非再跟与非门干架,结果就成A或B了。
为啥得这么整呢?这得靠德摩根定律来撑腰。根据这个定律,A或B的非等于A非与B非,反过来也成立。具体数据的话,假设A=1、B=0,按常规或门算得1,现在用与非门搭的话,先算A非=0,B非=1,这两个再与非得0与非1=1,跟或门结果一致。要是A和B都1,或门结果1,现在算A非=0,B非=0,再与非得0,这时候反而不对了?等等,我可能哪里算错了。哦不,德摩根定律说的是或非等于与非的或,所以正确步骤应该是先给A和B各加个非,再整体加个非。可能我之前步骤描述有误,正确做法是先用两个非门把A和B转成非,再拿这两个非进一个与非门,这样结果就对了。比如A=1、B=0,非A=0,非B=1,再与非得1,和或门结果一致。要是A=1、B=1,非A=0,非B=0,再与非得1,这时候或门结果也是1,所以是对的。看来之前步骤少了一步非门,现在修正过来,用三个与非门:两个当非门用,第三个当整体非用。这样总共三个门,就能实现或门功能了。
本题链接: