Sunteți pe pagina 1din 14

Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

Courses Custom Search Hire with us!

Construction 
of
Combinational
Circuits

4-bit binary
Adder-
Subtractor

Difference
between
EPROM and
EEPROM

Difference
between
Decoder and
Demultiplexer

Prime
Implicant chart
for minimizing
Cyclic Boolean
functions

Difference

between DDR
and SDRAM

Counting
Boolean
function with
some variables

Don't Care (X)


Conditions in
K-Maps

1 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

Program to implement Logic Gates


A Logic gate is an elementary building block of any digital circuits. It takes one or two inputs and
produces output based on those inputs. Outputs may be high (1) or low (0). Logic gates are im-
plemented using diodes or transistors. It can also be constructed using vacuum tubes, electro-
magnetic elements like optics, molecule etc. In a computer, most of the electronic circuits are
made up logic gates. Logic gates are used to create a circuit that performs calculations, data
storage or shows off object-oriented programming especially the power of inheritance.

There are seven basic logic gates de�ned, these are:

1. AND gate,

2 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

2. OR gate,
3. NOT gate,
4. NAND gate,
5. NOR gate,
6. XOR gate and
7. XNOR gate.

Below are the brief details about them along with their implementation:

1. AND Gate
The AND gate gives an output of 1 if both the two inputs are 1, it gives 0 otherwise.

Below are the programs to implement AND gate using various methods:

1. Using product method.


2. Using if else condition.
3. Using “and (&)” operator.

Product Method

3 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...


// C program implementing the AND gate
// through product method.

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, product;

    for (i = 0; i < 5; i++) {

        // using product method


        product = a[i] * b[i];

        printf("\n %d AND %d = %d",


               a[i], b[i], product);
    }
}

& Operator

// C program implementing the AND gate


// using & operator

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, and_ans;

    for (i = 0; i < 5; i++) {

        // using the & operator


        and_ans = a[i] & b[i];

        printf("\n %d AND %d = %d",


               a[i], b[i], and_ans);
    }
}

If-Else

4 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...


// C program implementing the AND gate
// using if and else condition

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        if (a[i] == 0 && b[i] == 0)
            ans = 0;

        else if (a[i] == 0 && b[i] == 1)


            ans = 0;

        else if (a[i] == 1 && b[i] == 0)


            ans = 0;
        else
            ans = 1;

        printf("\n %d AND %d = %d",


               a[i], b[i], ans);
    }
}

Output:

1 AND 0 = 0
0 AND 1 = 0
1 AND 1 = 1

0 AND 0 = 0
1 AND 0 = 0

2. OR Gate
The OR gate gives an output of 1 if either of the two inputs are 1, it gives 0 otherwise.

Below are the programs to implement AND gate using various methods:

1. Using + operator.
2. Using | operator. ▲
3. Using || operator.
4. Using if else.

5 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

+ Operator
 // C program implementing the OR gate
// using + operator

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, or_ans;

    for (i = 0; i < 5; i++) {

        // using the + operator


        if (a[i] + b[i] > 0)
            or_ans = 1;
        else
            or_ans = 0;

        printf("\n %d AND %d = %d",


               a[i], b[i], or_ans);
    }
}

| Operator

// C program implementing the OR gate


// using | operator

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, or_ans;

    for (i = 0; i < 5; i++) {

        // using the | operator


        or_ans = a[i] | b[i];

        printf("\n %d AND %d = %d",


               a[i], b[i], or_ans);
    }
}


|| Operator

6 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...


// C program implementing the OR gate
// using || operator

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, or_ans;

    for (i = 0; i < 5; i++) {

        // using the || operator


        or_ans = a[i] || b[i];

        printf("\n %d AND %d = %d",


               a[i], b[i], or_ans);
    }
}

If-Else

// C program implementing the OR gate


// using if else

#include <stdio.h>
 #include <stdlib.h>

int main()
 {
    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, or_ans;

    for (i = 0; i < 5; i++) {

        // using the if-else conditions


        if (a[i] == 0 && b[i] == 0)
            or_ans = 0;
        else
            or_ans = 1;

        printf("\n %d AND %d = %d",


               a[i], b[i], or_ans);
    }
}

Output:

1 AND 0 = 1
0 AND 1 = 1

7 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

1 AND 1 = 1
0 AND 0 = 0
1 AND 0 = 1

3. NAND Gate
The NAND gate (negated AND) gives an output of 0 if both inputs are 1, it gives 1 other-
wise.

Below are the programs to implement NAND gate using various methods:

1. Using if else.
2. Using Complement of the product.

If-Else

// C program implementing the NAND gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        if (a[i] == 1 && b[i] == 1)


            ans = 0;
        else
            ans = 1;
        printf("\n %d NAND %d = %d",
               a[i], b[i], ans);
    }
}

Complement of the product

8 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...


// C program implementing the NAND gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        ans = !(a[i] * b[i]);
        printf("\n %d NAND %d = %d",
               a[i], b[i], ans);
    }
}

Output:

1 NAND 0 = 1
0 NAND 1 = 1
1 NAND 1 = 0
0 NAND 0 = 1
1 NAND 0 = 1

4. NOR Gate
The NOR gate (negated OR) gives an output of 1 if both inputs are 0, it gives 1 otherwise.

Ad closed by
Stop seeing this ad

Why this ad?

Below are the programs to implement NOR gate using various methods:

9 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

1. Using + Operator.
2. Using if else.

+ Operator

// C program implementing the NOR gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        ans = !(a[i] + b[i]);
        printf("\n %d NOR %d = %d",
               a[i], b[i], ans);
    }
}

If-Else

// C program implementing the NOR gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int b[5] = { 0, 1, 1, 0, 0 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        if (a[i] == 0 && b[i] == 0)
            ans = 1;
        else
            ans = 0;
        printf("\n %d NOR %d = %d",
               a[i], b[i], ans);
    }
}

Output:

1 NOR 0 = 0 ▲
0 NOR 1 = 0
1 NOR 1 = 0

10 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

0 NOR 0 = 1
1 NOR 0 = 0

5. NOT Gate
It acts as an inverter. It takes only one input. If the input is given as 1, it will invert the result
as 0 and vice-versa.

Below are the programs to implement NOT gate using various methods:

1. Using ! Operator.
2. Using if else.

If-Else

// C program implementing the NOT gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        if (a[i] == 0)
            ans = 1;
        else
            ans = 0;

        printf("\n  NOT %d = %d", a[i], ans);


    }
}

! Operator

11 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...


// C program implementing the NOT gate

 #include <stdio.h>
#include <stdlib.h>
 int main()
{

    int a[5] = { 1, 0, 1, 0, 1 };
    int i, ans;

    for (i = 0; i < 5; i++) {


        ans = !(a[i]);
        printf("\n  NOT %d = %d", a[i], ans);
    }
}

Output:

NOT 1 = 0
NOT 0 = 1
NOT 1 = 0
NOT 0 = 1
NOT 1 = 0

Recommended Posts:
Introduction of Logic Gates
Half Adder and Half Subtractor using NAND NOR gates

Difference between Programmable Logic Array and Programming Array Logic


Multiplexers in Digital Logic
Counters in Digital Logic
5 variable K-Map in Digital Logic
Programmable Logic Array
Encoder in Digital Logic
Programming Array Logic
Latches in Digital Logic
BCD Adder in Digital Logic
Full Adder in Digital Logic
Half Adder in Digital Logic
Half Subtractor in Digital Logic ▲

Variable Entrant Map (VEM) in Digital Logic

12 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

sunilkannur98
Talk is cheap Show me the code -)

If you like GeeksforGeeks and would like to contribute, you can also write an article using con-
tribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article
appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you �nd anything incorrect by clicking on the "Improve Article" but-
ton below.

Article Tags : Digital Electronics & Logic Design Programming Language


2

3
To-do Done Based on 1 vote(s)

Feedback/ Suggest Improvement Add Notes Improve Article

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.

Load Comments

13 of 14 06/12/19, 3:32 pm
Program to implement Logic Gates - GeeksforGeeks https://www.geeksforgeeks.org/program-to-imp...

5th Floor, A-118,


Sector-136, Noida, Uttar Pradesh - 201305
feedback@geeksforgeeks.org

COMPANY LEARN PRACTICE CONTRIBUTE


About Us Algorithms Courses Write an Article
Careers Data Structures Company-wise Write Interview Experience
Privacy Policy Languages Topic-wise Internships
Contact Us CS Subjects How to begin? Videos
Video Tutorials

@geeksforgeeks, Some rights reserved


14 of 14 06/12/19, 3:32 pm

S-ar putea să vă placă și