Are you comparing 'actual size' vs 'size on disk'?
If so, there is a reason for this.
The elementary storage unit on a hard drive is called a 'sector'. Traditionally, each sector contains 512 bytes but some are starting to use 4096 bytes (or 4kb). Managing individual sectors is quite painstaking so to reduce operational overhead most filesystems group sectors together into system-specific names. On Windows these are known as 'allocation units' or 'clusters'. The size of each cluster is variable but must be a multiple of the sector size, typically the default allocation unit size is 4kb which works out to 8 sectors on most drives.
When a file is created it first receives only an entry in the filesystem, it does not actually receive any space on the disk until there is actually data written to it. Try this now, create a blank text document on your desktop and take a look at the size, even change the name. The actual size and size on disk will be 0 bytes. Now write one single character in the file and save it, then examine the size again. You'll notice now that the size is '1 byte' but the 'size on disk' is '4096 bytes'. This is because the file now exists both as a directory entry and as a file on the disk, it has been assigned a single allocation unit. If you keep writing to the file each character will be written to the same cluster until the cluster has been filled completely. Once you hit 4096 characters in the file, the next character will result in the filesystem assigning it a new allocation unit when the file is saved.
As for space that may have gone 'missing', Windows uses parts of the hard drive for non-filesystem storage. This includes garbage collection (recycle bin), system files (hidden unless you explicitly make them visible, don't do this), and system restore. Some of these operations can be turned off if you're pressed for space.