Linux, like any modern OS, is a virtual memory system, so Used can be either larger or smaller than physical memory. Why do you think there is some simple relationship between Used, Cached and Free? These commands get their values from /proc/meminfo, you can do any calculation that you want based on those.
Edit: on second thought, I think free
gives you exactly what you want:
total used free shared buffers cached
Mem: 503 494 8 0 40 225
-/+ buffers/cache: 227 275
Swap: 502 0 501
of 503 MB on this system, 227 is "used" and 275 is either free or available for use but currently occupied.