The direct answer to your question is, for a 32 bit OS, it can address 2^32 addresses or 4,294,967,296. For a 64 bit OS, it can address 2^64 addresses, or 18 EB. The amount of HDD space that can be used depends on the cluster size, for example for a 32 bit OS using a file system with 512 byte sectors, that would give you a HDD limitation of 2.2 TB. For a 64 bit OS using a file system with 4096 byte cluster sizes, that would give you a "theoretical" HDD limitation of 75.5 ZetaBytes.
Problem is there are other limiting engineering factors between OS and HDD. Presently the HDD's use 48 bit addressing so they can't or need to address more than 2^48 addresses or 281 TB (times the bytes per cluster). And with many external adapter USB/SATA bridges, they may be limited to 2^28 to 2^32 address locations in the bridge themselves. And there are Partition or Volume limitations and Media limitations, so as Romney would say, the math adds up but it's too complicated to explain!
In simplified terms, the limitations presently are:
FAT 12 = 33 MB
FAT 16 = 2 GB
FAT 32 = 32 GB
exFAT = 256 TB (media limited now to 128 GB flash drives)
NTFS = 18 EB (media limited now to 4TB Drives)
UDF = 8.8 TB (media limited now BluRay ~ 50 GB disks)