finding_20the_20parity_20of_20a_20number

*by Richard Russell, March 2014*

The **parity** of an integer is determined by the number of set (i.e. **1**) bits in its binary representation. If there are an even number of set bits the parity is **even** and if there are an odd number of set bits the parity is **odd**. So for example %00100000 has odd parity and %00100010 has even parity.

The function below can be used to discover the parity of a 32-bit integer, it returns 0 for even parity and 1 for odd parity:

DEF FNparity(X%) X% EOR= X% >> 1 X% EOR= X% >> 2 X% EOR= X% >> 4 X% EOR= X% >> 8 X% EOR= X% >> 16 = X% AND 1

An equivalent function for 64-bit integers (*BBC BASIC for Windows* version 6 only) is as follows:

DEF FNparity(X%%) X%% EOR= X%% >> 1 X%% EOR= X%% >> 2 X%% EOR= X%% >> 4 X%% EOR= X%% >> 8 X%% EOR= X%% >> 16 X%% EOR= X%% >> 32 = X%% AND 1

This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

finding_20the_20parity_20of_20a_20number.txt · Last modified: 2018/04/17 16:13 by tbest3112

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International