Sorry for the late reply. When I say "it knows that it should look at bytes 500000 through 500003 when doing numeric operations on your variable", I mean that the processor knows that the memory you're addressing is four bytes in length. To understand this, let's get into the fundamentals of how a processor's API is set up. On an X86 chip, there are lots of different commands for retrieving values from memory, adding numbers, saving values to memory, branching (to support "if" statements and while loops), etc. With the exclusion of branching, each of the other types of commands I mentioned has different operation codes depending on how many bits should be retrieved, added, or saved. So from the processor's perspective, when it receives a request to add 32 bits, it receives just one request and it knows that to get 32 bits it must read all the bits over 4 bytes.
I'm not sure what you're asking in your concluding question.
Jon Emerson
http://www.jonemerson.net/