American in Spain

Elevators and Floor Numbering

March 16, 2007

It's time for Round 2 in our comparison of how Spain and the US differ in small, trivial ways. Today's topic: Elevators and floor numbering.

The Difference

In the United States, when you walk into a building from the street, you are on the "first floor" of the building. If you go up the stairs to the floor above, you will be on the second floor.

In Spain (and the rest of Europe), when you walk into a building from the street, you are on the "ground floor" of the building. If you go upstairs to the floor above, you will be on the first floor.

CIMG3074.JPG

The buttons in the elevator in my building.

Argument By Arrays

In computer programming, all lists and arrays are zero-indexed, meaning that they start counting at zero. To explain why, we're going to have to jump into the first week of Computer Science 101...

Let's say that one integer takes up 4 bytes of memory. So an array of 5 integers requires 20 bytes of memory. Let's say our array is stored at memory address 3456, and the values are the some numbers in the Fibonacci sequence. So, in memory, our array looks like: table.memtable { font-size:90%; border: none; margin-left: 150px; } table.memtable th { text-align:center; vertical-align: middle; } table.memtable td { text-align:center; border: 1px solid #E5ECF7; vertical-align: middle; }

Memory Address

Value

3456

8

3457

3458

3459

3460

13

3461

3462

3463

3464

21

3465

3466

3467

3468

34

3469

3470

3471

3472

55

3473

3474

3475

The way we access the individual elements of our array is to specify what is called an "offset" from the original array address. If we say, fibonacci[1] the offset is 1, fibonacci[3] the offset is 3, etc.. The computer is going to multiply our offset by the size of our data type (remember we said an integer was 4 bytes), and add that to the memory address of our array. It will then read a four-byte integer from that memory location. So,

memory location of fibonacci[0] = (0 x 4) + 3456 = 3456 memory location of fibonacci[1] = (1 x 4) + 3456 = 3460 memory location of fibonacci[2] = (2 x 4) + 3456 = 3464 memory location of fibonacci[3] = (3 x 4) + 3456 = 3468 memory location of fibonacci[4] = (4 x 4) + 3456 = 3472

You can see that asking for fibonacci[0] gives us the first integer in the array, fibonacci[1] gives us the second integer, and so on. This is why arrays are zero-indexed in computers.

Floors in buildings should work exactly the same way. The building is the array, and the floor is the offset. If I tell you to meet me at 3456 Main St., I expect you to go to that location and enter the building, and not go up or down any stairs. If the building has five stories, and I want to meet you at the top story, I should tell you the number of stories to go up in the building to find me. So, just like the fifth, and final, element in our array was fibonacci[4], I should tell you "3456 Main St., 4th floor".

Argument By Cartesian Coordinates

If you prefer geometry to computer science, this explanation is for you. For the purposes of daily human life, we live in a world of three spacial dimensions. We'll call the axes east-west (ew), north-south (ns), and up-down (ud). Our examples will assume a universally-known origin at some point on the ground. Let's start off with simple and work our way up.

Assume we're in a 1-dimensional world. If I want to meet you at a certain point, I need to tell you how far east or west of the origin to meet me. For example, if I said, "Meet me at 4 east," you'd know where to go.

Now assume we're in a 2-dimensional world. If I want you to meet me at a certain point, I need to tell you how far east or west to go and how far north or south to go from the origin to meet me. I might ask you to meet me at (4 ew, 3 ns) or (-5 ew, 7 ns). Or, and this is crucial, I might ask you to meet me at (5 ew, 0 ns). Note that (5,0) is a perfectly valid Cartesian coordinate, and clearly denotes a point on the plane.

Now let's go up to a 3-dimensional world. Let's assume there's a building at (3 ew, 4 ns). If I tell you to go to (3 ew, 4 ns, 0 ud), "Meet me at the corner of Third St. and Fourth Ave.," I expect you to go to the building and wait for me in the lobby on the ground floor. If I want you on the next floor up, I'd send you to (3 ew, 4 ns, 1 ud). I'd say, "Meet me at the corner of Third St. and Fourth Ave, first floor."

Obviously, if I really wanted to meet you there, I'd have to specify a fourth coordinate in the temporal dimension as well, but that's irrelevant to this discussion.

Conclusion

I've presented two very logical, somewhat geeky, reasons for why Spain's zero-indexed floor numbering system is superior to the American one-indexed system. It may seem arbitrary, but I contend that, while it may be trivial, it is not arbitrary.

This point goes to Spain.

Score: USA: 1, Spain: 1