# 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:

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

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

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

## References:

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

## See Also:

## More by this Author

- 3
Statement testing is a whitebox, dynamic testing technique. It requires examination of the source code and the creation of tests that will exercise individual statements. The project plan should indicate the proportion...

- 1
Branch testing and decision testing are closely related. We will treat them same. When 100% coverage is concerned, the two techniques are the same. Branch and decision testing require examination of the source code...

## Comments 13 comments

this is very helpful

nice work, unrelated question though

what is an inverse randomizer in cryptography

Thank You Booster911. Very Useful

thanx

Thank you =)

thanks mate. appreciated:))

Addition is wrong!

(X) 10110100

(Y) 00101010 +

(Z) 10011110 -wrong

(Z) 11011110 -correct

Thanks! =D

Thanks,

Thanks explained very well

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

13