Modulo 2 Arithmetic

Introduction

These notes describe how to go about modulo 2 addition, subtraction and division.

Modulo 2 Arithmetic

Modulo 2 arithmetic is performed digit by digit on binary numbers. Each digit is considered independently from its neighbours. Numbers are not carried or borrowed.

Addition

Modulo 2 addition is performed using an exclusive OR (xor) operation on the corresponding binary digits of each operand. The following table describes the xor operation:

    A  B  A xor B
    0  0     0
    0  1     1
    1  0     1
    1  1     0
 

We can add two binary numbers, X and Y as follows:

    (X) 10110100
    (Y) 00101010 +
        --------
    (Z) 10011110
 

Subtraction

Modulo 2 subtraction provides the same results as addition. This can be illustrated by adding the numbers X and Z from the addition example.

    (X) 10110100
    (Z) 10011110 -
        --------
    (Y) 00101010
 

The addition example shows us that X + Y = Z so Y = Z - X.

However, the subtraction example shows us that Y = Z + X.

As neither Z nor X is zero, the addition and subtraction operators must behave in the same way.

Division

Modulo 2 division can be performed in a manner similar to arithmetic long division. Subtract the denominator (the bottom number) from the leading parts of the enumerator (the top number). Proceed along the enumerator until its end is reached. Remember that we are using modulo 2 subtraction. For example, we can divide 100100111 by 10011 as follows:

             10001 remainder 100
            ----------
       10011|100100111
             10011 
                 10111
                 10011 
                   100


This has the effect that X/Y = Y/X. For example:

             1 remainder 1011
            ------
       11001|10010
             11001 
              1011


             1 remainder 1011
            ------ 
       10010|11001
             10010 
              1011


References:

  • A.S. Tanenbaum (1996). Computer Networks. Prentice Hall ISBN 0-13-394248-1. See section 3.2.2.


More by this Author


Comments 13 comments

felixdolot3 6 years ago

this is very helpful


vick 6 years ago

nice work, unrelated question though

what is an inverse randomizer in cryptography


Jesinth 5 years ago

Thank You Booster911. Very Useful


hassan 5 years ago

thanx


arfname 4 years ago

Thank you =)


gul khan 4 years ago

thanks mate. appreciated:))


Ogi 4 years ago

Addition is wrong!

(X) 10110100

(Y) 00101010 +

(Z) 10011110 -wrong

(Z) 11011110 -correct


Booster911 profile image

Booster911 4 years ago from UK Author

Ogi,

Your example performs a Binary Addition. The example I give is of Modulo 2 Addition. As the article says, Modulo 2 Addition performs the XOR operation on each column, no carry is performed.

I hope this helps.


Goht 3 years ago

Thanks! =D


Alphonce 3 years ago

Thanks,


Raj 2 years ago

Thanks explained very well


Debrah 23 months ago

Your answer was just what I neeedd. It's made my day!


Shim 22 months ago

How about modulo 2 multiplication?

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working