system
Given the following post, respond as if you're commenting on Reddit:
human
Is there a reason hard drive space is often measured in 2^x gigabytes (eg iPhones come in 16, 32 or 64Gb)?
gpt
Ok, as a start, let me correct you first: Memory CHIPS are usually built in sizes of powers of 2 (which includes SSD drives which use Flash chips). Regular mechanical/magnetic HDDs are build to sizes of power of 10 (e.g. 500GB, 750GB, 1000GB, etc.) and manufacturers even use power of 10 units (1 KB = 1000B) on boxes.

The reason why different kind of memory chips (which includes DRAM memory, Flash chips, etc.) are made in 2^x capacities is the fact that it greatly simplifies circuit board design for engineers using those chips due to the way how addressing works. 2^x capacity chips are easier to combine and thus use of those chips makes devices much cheaper and easier to manufacture. 

That's because the address of a first byte in a 2^x chip will be all binary zeroes and address of the last byte will always be all binary ones and the rest of the space will be fully covered with all addresses that can possibly be written in binary. Because of that, a circuit board doesn't need complex logic to split data between different chips.

**EDIT** (answered the actual question ;)):

Now if you build an SSD/iPhone/etc. memory from identical chips, which are all power-of-2 (e.g. 8x4GB chips for 32GB), you'll get total capacity that is power of 2 as well. Building a non-power-of-2 total capacity would require mixing chips of different capacities to achieve a nice number (e.g. using 7x4GB + 1x2GB chip to build a 30GB storage). This is undesireable, because buying a large amount of a single component is immensly cheaper than using several when manufacturing.

=== Detailed explanation ===

Basically, to tell the chip which piece of data you want from it, you need to tell it a BINARY address of the byte you want. Memory chip will have a pin on it for each bit of binary number - so a memory chip with capacity of 16B would have 4 pins for address. The address of first byte would be 0000 and the address of the last byte there would be 1111. If you want to get byte 4 (with address of 0100) from the chip, you have to set pins 1, 2 and 4 to zero (no voltage) and set power (e.g. 3.3 V) on pin 3. (*For nitpickers - chips that have those flipped, proper numbering of pins, etc. has been left out for simpler explanation*). 

So how does this helps us build simpler devices? If we have two chips of 16B capacity and we want to build a computer/phone with 32B of storage, that means we will have addresses from 00000 - 11111 for that storage. Since we have 2^4 chips, we decided that the first chip will cover addresses from **0**0000 - **0**1111 and second will cover **1**0000 - **1**1111. That means that we just wire up the bottom 4 lines on the circuit board to both chips and use the first bit line to decide which chips powers on. Magically, everything will get stored in proper place, there are no "invalid" addresses we can create, etc. 

If we wouldn't have chips with capactiy of 2^x, we would have to delegate (for example) 00000-01101 to first chip and 01110-11111 to second chip, which would make the circuit board very complex to design.