Fat(16) and FAT32 run the way killian said, except the numbers of addresses end with "F" since it is hexadecimal
hexadecimal is a base 16 numbering system starting at 0, gets up to 9 and starts using letters. it ends at F before rolling over to 10 (which is actually 16 in our system)
the system we are used to is the decimal system, which starts at 0 and ends at 9 before rolling over to 10
in binary, these numbers are 4 bits each:
0 would be 0000
1 would be 0001
2 would be 0010
3 would be 0011
and so on, until it gets to F which is 1111
hexadecimal was made because it is easier for people to use than binary. we see the numbers from 0 to F, computers see the binary from 0000 to 1111
standard FAT addresses in 16 bit, which means each address is 16 ones and zeroes long.
in hexadecimal, FAT(16) addresses would be 16/4=4 characters long, for example 10BF
each bit can only be 2 things (a one or zero) so the number of possible addresses in FAT is therefore
2^16 = 65536
an address tells the system where each cluster of bytes is on the hard disk. in FAT, the maximum cluster size is 64kb (or 65536 bytes)
65536 x 65536 = 4294967296 bytes or 4GB
that is the maximum capacity FAT could address. we know drives grew bigger than that, so they developed FAT32, which could address in 32 bits
2^32 = 4294967296 which is the maximum number of addresses FAT32 can handle, and its cluster sizes are a maximum of 16kb (or 16384 bytes)
16384 * 4294967296 = 70368744177664 bytes, or 65536 GB
FAT32 can address much more memory, which an OS like Windows 98 will format any drive up to in FAT32, but any NT-based OS (including NT, 2000, XP and 2003) will only format drives in FAT32 up to 32GB, regardless of their cluster size
this site has the cluster sizes supported by FAT, FAT32 and NTFS