  In this paper, we define the concepts of semi-canonical and canonical binary
matrix. Strictly mathematical, we prove the correctness of these definitions.
We describe and we implement an algorithm for finding all semi-canonical binary
matrices taking into account the number of 1 in each of them. This problem
relates to the combinatorial problem of finding all pairs of disjoint
S-permutation matrices. In the described algorithm, the bit-wise operations are
substantially used.
