Random number generator RNG, other examples

Instead of using modular addition, we could use the bitwise exclusive-OR (\( \oplus \)) operation so that $$ \begin{equation*} N_l=(N_{l-i})\oplus (N_{l-j}) \end{equation*} $$ where the bitwise action of \( \oplus \) means that if \( N_{l-i}=N_{l-j} \) the result is \( 0 \) whereas if \( N_{l-i}\ne N_{l-j} \) the result is \( 1 \). As an example, consider the case where \( N_{l-i}=6 \) and \( N_{l-j}=11 \). The first one has a bit representation (using 4 bits only) which reads \( 0110 \) whereas the second number is \( 1011 \). Employing the \( \oplus \) operator yields \( 1101 \), or \( 2^3+2^2+2^0=13 \).

In Fortran90, the bitwise \( \oplus \) operation is coded through the intrinsic function \( \mathrm{IEOR}(m,n) \) where \( m \) and \( n \) are the input numbers, while in \( C \) it is given by \( m\wedge n \).