Oct-03-2019, 04:57 PM
def nandgate(a, b): if a == 0 and b == 0: return 1 if a == 1 and b == 0: return 1 if a == 0 and b == 1: return 1 if a == 1 and b == 1: return 0 def invert(x): return nandgate(x, x) def andgate(a, b): return invert(nandgate(a, b)) def orgate(a, b): return invert(andgate(invert(a), invert(b))) def xorgate(a, b): return invert(orgate(invert(orgate(a, b)), andgate(a, b))) def addtwo(a, b): return andgate(a, b), xorgate(a, b) def addthree(a, b, c): return orgate(addtwo(a, b)[0], andgate(addtwo(a, b)[1], c)), xorgate(addtwo(a, b)[1], c) def multiadder(aFifteen, aFourteen, aThirteen, aTwelve, aEleven, aTen, aNine, aEight, aSeven, aSix, aFive, aFour, aThree, aTwo, aOne, aZero, bFifteen, bFourteen, bThirteen, bTwelve, bEleven, bTen, bNine, bEight, bSeven, bSix, bFive, bFour, bThree, bTwo, bOne, bZero, c): return addthree(aFifteen, bFifteen, addthree(aFourteen, bFourteen, addthree(aThirteen, bThirteen, addthree(aTwelve, bTwelve, addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0], addthree(aFifteen, bFifteen, addthree(aFourteen, bFourteen, addthree(aThirteen, bThirteen, addthree(aTwelve, bTwelve, addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aFourteen, bFourteen, addthree(aThirteen, bThirteen, addthree(aTwelve, bTwelve, addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aThirteen, bThirteen, addthree(aTwelve, bTwelve, addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aTwelve, bTwelve, addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aEleven, bEleven, addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aTen, bTen, addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aNine, bNine, addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aEight, bEight, addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[0])[1], addthree(aSeven, bSeven, addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[0])[1], addthree(aSix, bSix, addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[0])[1], addthree(aFive, bFive, addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[0])[1], addthree(aFour, bFour, addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[0])[1], addthree(aThree, bThree, addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[0])[1], addthree(aTwo, bTwo, addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[0])[1], addthree(aOne, bOne, addthree(aZero, bZero, c)[0])[1], addthree(aZero, bZero, c)[1] print("Enter two 2 Base-10 numbers to add. Result will be in binary ") a = int(input("Enter A ")) a = bin(a)[2:].zfill(16) b = int(input("Enter B ")) b = bin(b)[2:].zfill(16) aFifteen = int(a[0]) aFourteen = int(a[1]) aThirteen = int(a[2]) aTwelve = int(a[3]) aEleven = int(a[4]) aTen = int(a[5]) aNine = int(a[6]) aEight = int(a[7]) aSeven = int(a[8]) aSix = int(a[9]) aFive = int(a[10]) aFour = int(a[11]) aThree = int(a[12]) aTwo = int(a[13]) aOne = int(a[14]) aZero = int(a[15]) bFifteen = int(b[0]) bFourteen = int(b[1]) bThirteen = int(b[2]) bTwelve = int(b[3]) bEleven = int(b[4]) bTen = int(b[5]) bNine = int(b[6]) bEight = int(b[7]) bSeven = int(b[8]) bSix = int(b[9]) bFive = int(b[10]) bFour = int(b[11]) bThree = int(b[12]) bTwo = int(b[13]) bOne = int(b[14]) bZero = int(b[15]) c = 0 print(multiadder(aFifteen, aFourteen, aThirteen, aTwelve, aEleven, aTen, aNine, aEight, aSeven, aSix, aFive, aFour, aThree, aTwo, aOne, aZero, bFifteen, bFourteen, bThirteen, bTwelve, bEleven, bTen, bNine, bEight, bSeven, bSix, bFive, bFour, bThree, bTwo, bOne, bZero, c)) exit = input("")