首页 > 解决方案 > 在 python 中制作一个 1 位加法器,但是当我输入 (0,1,0) ,(0,1,1),(1,0,0),(1,0,1) 时,我要么没有得到总和或没有执行

问题描述

但是当我输入 (0,1,0) ,(0,1,1),(1,0,0),(1,0,1) 时。我要么没有得到总和,要么没有得到结转。而且我不确定代码有什么问题以及为什么会遇到这个问题。我想我已经根据它们的条件正确地制作了大多数真值表我只是不确定为什么当它应该代表 1 时我没有得到一个总和

***
   def main():
        a = input("Enter 'A' value(0-1):  ")
        b = input("Enter 'B' value(0-1): ")
        c = input("Enter 'Cin' value(0-1): ")     

        def bitadder(a,b,c):
            def xor_g(a,b):
               if a != "1":
                if b == "0":
                    if a == "0" and b == "0":
                        if a or b == "0":
                            return("0")
                        else:
                            return("1")
            if a == "1":
                if b != "0":
                    if a == "1" and b == "1":
                        if a or b == "1":
                            return("0")
                        else:
                            return("1")
            if b == "1":
                if a == "0":
                    if a == "0" and b == "1":
                        if a or b == "0":
                            return("1")
                if b == "0":
                    if a == "1":
                        if a == "1" and b == "0":
                            if a or b == "1":
                                return("1")
                       
                #XOR logic gate
        xor_g(a,b)
        def and_g(a,b):
            if a == "1" and b == "1":
                return("1")
            else:
                return("0")
                #AND logic gate
        and_g(a,b)

        def or_g(a,b):
            if a == "0" or b == "0":
                return("0")
            else:
                return("1")
                #OR logic gate
            or_g(a,b)
            d = xor_g(a,b)
            sum = xor_g(d,c)
            g = and_g(d,c)
            e = and_g(a,b)
            out = xor_g(g,e)
            print(sum,out)
            bitadder(a,b,c)
 #I think I have made most of the truth tables correctly based on their conditions I'm just not sure why I'm getting none as a sum when it should represent 1
***


  main()

标签: python-3.x

解决方案


推荐阅读