  BCH codes have been studied for over fifty years and widely employed in
consumer devices, communication systems, and data storage systems. However, the
dimension of BCH codes is settled only for a very small number of cases. In
this paper, we study the dimensions of BCH codes over finite fields with three
types of lengths $n$, namely $n=q^m-1$, $n=(q^m-1)/(q-1)$ and $n=q^m+1$. For
narrow-sense primitive BCH codes with designed distance $\delta$, we
investigate their dimensions for $\delta$ in the range $1\le \delta \le
q^{\lceil\frac{m}{2}\rceil+1}$. For non-narrow sense primitive BCH codes, we
provide two general formulas on their dimensions and give the dimensions
explicitly in some cases. Furthermore, we settle the minimum distances of some
primitive BCH codes. We also explore the dimensions of the BCH codes of lengths
$n=(q^m-1)/(q-1)$ and $n=q^m+1$ over finite fields.
