Currently, when storage devices are marketed or advertised to consumers, the storage space is measured in a base 10 decimal system.
I believe this was a way for the storage industry to save some $ because they don't have to provide as many bytes.
64 GB now means 64,000,000,000 bytes vs 68,719,476,736 bytes.
This means 64 GigaBytes = 64 x 1000 (GB) x 1000 (MB) x 1000 (Bytes) == 64,000,000,000 Bytes.
When storage is displayed in an operating system based on a binary system, a different storage unit (GibiByte) is used.
A Gibi Byte is measured in binary or base 2 system.
This means 64 GibiBytes = 64 x 2^10 (GiB) x 2^10 (MiB) x 2^10 (Bytes) == 64 x 1024 x 1024 x 1024 == 68,719,476,736 Bytes.
The problem is most people think or call both measurements of data by the same common name, GB (GigaByte).
HDD/SSD/Storage manufacturers are giving customers 64,000,000,000 Bytes or 64 GB (GigaBytes).
When the OS calculates 64 GB to GiB (which is what it displays), it looks like less.
64,000,000,000 / 1024 / 1024 / 1024 == about 59.6046 GiB.
When your iOS device shows you have some capacity (ex. 55.4 GB), it really means GiB and this is the space left over after the OS.
59.6046 - 55.4 = 4.2046 GiB used for the OS.
Available space is even lower as some apps (books, music, podcasts, camera) have used up some space or have temporary files/caches that are not included as a part of the base application.
The GB vs GiB frustrates me because in the beginning, it was always based on base 2 and the numbers added up and made sense. At some point storage manufacturers made the change and I think GiB/MiB, ect were created to differentiate between base 2 and base 10 measurements. Computer operating systems are still calculating things correctly from the decimal base 2 system and still call them GigaBytes/MegaBytes (GB/MB) which I believe in computer science is still proper and accurate.