BCH codes are one of the most important classes of cyclic codes for error correction. In this study, we generalize BCH codes using monoid rings instead of a polynomial ring over the binary field F 2 . We show the existence of a non-primitive binary BCH code C bn of length bn, corresponding to a given length n binary BCH code C n . The value of b is investigated for which the existence of the non-primitive BCH code C bn is assured. It is noticed that the code C n is embedded in the code C bn . Therefore, encoding and decoding of the codes C n and C bn can be done simultaneously. The data transmitted by C n can also be transmitted by C bn . The BCH code C bn has better error correction capability whereas the BCH code C n has better code rate, hence both gains can be achieved at the same time.