donkey42: Will try to help you figuring this out...
This sign "^" should stay for "to the power of"; So "a^m" means "a to the power of m". ---
Hence "10^3" means "ten to the power of 3", which translates to "multiply 10 three times by itself" which equals 1'000 (10 x 10 x 10). In this construction 10 is called the "base" and 3 is called the "exponent". Yes, you're right, the exponent 3 means a 1 followed by three 0, as we're in the realm of our everyday *decimal* (base 10) system which knows ten digits (0 | 1 | .... | 8 | 9). Once you've reached 9 while counting, you'll have reached the base limit and have to use your carry digit so as next after 9 comes 10 (one, zero). ---
Then we have another power "2^10", which translates to "multiply 2 ten times by itself", 2 being the base and 10 being the exponent. Now we're dealing with the *binary* system (base 2) which knows only two digits (0 | 1). (These two digits are equivalent to two defined "states" in a computing machine.) Here comes a small comparison table:
decimal | binary
0 | 0000
1 | 0001
2 | 0010
3 | 0011
4 | 0100
5 | 0101
6 | 0110
7 | 0111
8 | 1000
...
The last (9th) row implies 2^3 = 8 which means that you are going to need 3 binary places to cater for decimal digits 0 through 7. Or put the other way around, groups of binaries (3 each) may be shortened to 1 octal (programmers use that property sometimes). Our decimal 8 translates to a 1 followed by three 0 in binary notation.
As you'll see, as there are only digits zero and one, the carry-over has to occur much earlier (in the row of decimal 2). Our decimal 2 is 10 (one, zero) in binary speak...
To follow your rationale, "2^10" (= 1'024, that's our decimal notation) should sport ten zeros; you're right, if you wrote it out in *binary* (think of continuing the above table) it would look indeed like this (as expected): 10'000'000'000 (b). That's how a computer would internally store our decimal number 1'024 by using up 11 bits of memory...