Virtualaddresslimit is the amount of virtual address space available to a program out of the 4GBs that our processors support. Some of the address space is used by the kernel and devices such as video memory, which is why the max is 3072 and is lower on some systems (to be stable). This is different from the amount of ram you have installed as it is virtual and can exist in your swap file or even as unallocated memory. As well different processes use the same virtual addresses in some cases.
eg you could have only 512 MBs of ram and have 2 programs using 1 GB of memory. Lots of swapping but the programs would each see that they have access to a GB.
There are different ways to measure disk space (and ram etc), some use a MB to mean 1,000,000 bytes as this makes a hard disk look bigger and some use a MB to mean 1,048,576 bytes. Now some (Dfsee) use MiB to mean 1,048,576 bytes and MB to mean 1,000,000 bytes.
Basically the marketers have changed the original meaning of MB as 1,048,576 to 1,000,000 to inflate sizes of HDs etc.