Every computer file, including data files and program files, is a unique sequence of binary bits, unless the user modifies the file. As such, every such file has a unique signature, which is its base-2 (or alternatively base-10) numerical representation. Since a byte has 8 bits, we can immediately get some bounds on the size of this file signature:
File Size: | 1 byte | 1 KB | 1 MB | 1 GB |
Signature Range: | 0 ≤ S ≤ 223-1 | 0 ≤ S ≤ 2213-1 | 0 ≤ S ≤ 2223-1 | 0 ≤ S ≤ 2233-1 |
Expanded Signature Range: | 0 ≤ S ≤ 255 | 0 ≤ S ≤ 0.1090748136*102467 | 0 ≤ S ≤ A (large!) | 0 ≤ S ≤ B (huge!) |
Here's an example: Suppose our file F has size 5 bytes and contains the following bit sequence:
F: | 10110110 | 11010100 | 10100001 | 00111111 | 10110001 |
F's signature is exactly S = $B6D4A13FB1 in hexadecimal, which is equal to S = 785251385265 in base 10. S for a 5 byte file may take 240 = 1099511627776 different values, which means such a file can represent 1099511627776 different sequences/values/signatures, depending on its contents.
For a 1KB file, S can vary between 0 and 0.1090748136*102467. This last number is a number with 2466 digits, in case you are wondering. It's already greater than the number of all electrons in the universe (~1058) by many orders, and the total number of chess board configurations (~1071.3) also by many orders.
Let's now attempt to estimate the magnitude of A. We immediately have:
log2(log2(A)) = 23. Using the logarithm base change:
logb(X) = logk(X)/logk(b), call X = log2(A). Then:
log2(X) = log10(X)/log10(2) = 23, =>
log10(X) = 23*log10(2) ~ 6.9236898 ~ 7, =>
X = 107 , =>
log2(A) ~ 107, and using the base change formula again, =>
log10(A)/log10(2) ~ 107, =>
log10(A) ~ 107*log10(2) ~ 3000000, =>
A ~ 103000000.
That's a LARGE number. It has approximately 3000000 digits. That's approximately 3 million digits.
Repeating for B, we find:
B ~ 103000000000.
That's a huge number. It has approximately 3 billion digits. Now you understand what it means for a system to have storage capacity equal to 1 Gigabyte.
To get an idea of the immense power of the tetration of 2, a useful exercise for the reader is to try to calculate how many digits the number 2^^7=72=22222222 has. The estimation is presented below. See if you can follow the details.
12=2^^1 | 2 |
22=2^^2 | 4 |
32=2^^3 | 16 |
42=2^^4 | ~10^4.81=1(10,4.81)[1] |
52=2^^5 | ~10^10^4.29=2(10,4.29)[2] |
62=2^^6 | ~10^10^10^4.29=3(10,4.29)[3] |
72=2^^7 | ~10^10^10^10^4.29=4(10,4.29)[4] |