You are probably using a 32 bit OS. 32 bits can address 4 GB of RAM, but unfortunately the RAM is not all that's in the address space. Windows (and the other OS's) uses part of the address space for what they call "memory-mapped input/output".
4GB = 2^32 bytes and on a 32 bit OS the space for addressing a specific memory address is stored in a 32 bit address which means that 2^32 possible address spaces are available. of that space the reserved System memory space and video memory pages use about .75GB leaving approx 3.25GB of useable space available out of the 4 GB. Maximum that can be addressed.
So on a 32 bit OS the most that you can use is 3.25GB but memory chips can not be run in dual channel mode with 3 1GB and one 256MB module so most of the time you will install 4 GB of memory leaving .75GB. unuseable on a 32 bit system ! - To use more than that you need to upgrade to a 64 bit OS which then stores the memory address as a 64 bit address allowing 2^64 possible addresses.