Minecraft wiki entry for Birch, associated text: The topmost row is one above the height of the tree and always has exactly 5 leaves: one above the log and four orthogonally adjacent to it, forming a + shape.
5 leaves
The second row is the top of the trunk and also has 4 leaves adjacent to it. Diagonal leaf blocks grow from a minimum of 1 and a maximum of 3 corners of the log.
5 - 7 leaves
The third row has the log in the middle, surrounded orthogonally and diagonally by leaf blocks. Those 8 leaf blocks are also surrounded orthogonally, for an additional 12 leaf blocks. One can think of this as a 5×5 space where every block is leaves except the four corners. These corners are randomly filled with between 0 and 4 leaves, although having all four filled is rare.
20 - 24 leaves
The fourth row generates with the same rules like the third and thus has a minimum of 20 and a maximum of 24 leaf blocks.
20 - 24 leaves
The fifth and sixth (bottom) rows contain no leaves, only the log in the center. If the tree is 6 or 7 blocks tall, the additional 1 or 2 rows at the bottom are also just a log.
No leaves