Power of two

From testwiki
Revision as of 20:57, 17 February 2025 by 2a00:6020:a123:8b00:2ce7:3af4:d700:ad18 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description Template:Other uses

Visualization of powers of two from 1 to 1024 (20 to 210) as base-2 Dienes blocks

A power of two is a number of the form Template:Math where Template:Mvar is an integer, that is, the result of exponentiation with number two as the base and integer Template:Mvar as the exponent. In the fast-growing hierarchy, Template:Math is exactly equal to f1n(1). In the Hardy hierarchy, Template:Math is exactly equal to Hωn(1).

Powers of two with non-negative exponents are integers: Template:Math, Template:Math, and Template:Math is two multiplied by itself Template:Mvar times.[1][2] The first ten powers of 2 for non-negative values of Template:Mvar are:

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, ... Template:OEIS

By comparison, powers of two with negative exponents are fractions: for positive integer Template:Mvar, Template:Math is one half multiplied by itself Template:Math times. Thus the first few negative powers of 2 are Template:Sfrac, Template:Sfrac, Template:Sfrac, Template:Sfrac, etc. Sometimes these are called inverse powers of two because each is the multiplicative inverse of a positive power of two.

Base of the binary numeral system

Because two is the base of the binary numeral system, powers of two are common in computer science. Written in binary, a power of two always has the form 100...000 or 0.00...001, just like a power of 10 in the decimal system.

Computer science

Two to the power of Template:Math, written as Template:Math, is the number of values in which the bits in a binary word of length Template:Math can be set, where each bit is either of two values. A word, interpreted as representing an integer in a range starting at zero, referred to as an "unsigned integer", can represent values from 0 (Template:Math) to Template:Math (Template:Math) inclusively. An alternative representation, referred to as a signed integer, allows values that can be positive, negative and zero; see Signed number representations. Either way, one less than a power of two is often the upper bound of an integer in binary computers. As a consequence, numbers of this form show up frequently in computer software. As an example, a video game running on an 8-bit system might limit the score or the number of items the player can hold to 255—the result of using a byte, which is 8 bits long, to store the number, allowing the representation of 256 distinct values from Template:Math to Template:Math. For example, in the original Legend of Zelda the main character was limited to carrying 255 rupees (the currency of the game) at any given time, and the video game Pac-Man famously has a kill screen at level 256.

Powers of two are often used to define units in which to quantify computer memory sizes. A "byte" now typically refers to eight bits (an octet), resulting in the possibility of 256 values (28). (The term byte once meant (and in some cases, still means) a collection of bits that was defined by the hardware context, typically of 5 to 32 bits, rather than only an 8-bit unit.) The prefix kilo, in conjunction with byte, has been used by computer scientists to mean Template:Val (210). However, in general, the term kilo has been used in the International System of Units to mean Template:Val (103). Binary prefixes have been standardized, such as kibi (Ki) meaning Template:Val. Nearly all processor registers have sizes that are a power of two bits, 8, 16, 32 or 64 bits being very common, with the last two being most common except for very small processors.

Powers of two occur in a range of other places as well. For many disk drives, at least one of the sector size, number of sectors per track, and number of tracks per surface is a power of two.Template:Citation needed The logical block size is almost always a power of two.

Numbers that are closely related to powers of two occur in a number of computer hardware designs, such as with the number of pixels in the width and height of video screens, where the number of pixels in each direction is often the product of a power of two and a small number. For example, Template:Math, and Template:Math.

Mersenne and Fermat primes

A prime number that is one less than a power of two is called a Mersenne prime. For example, the prime number 31 is a Mersenne prime because it is 1 less than 32 (25). Similarly, a prime number (like 257) that is one more than a positive power of two is called a Fermat prime—the exponent itself is a power of two. A fraction that has a power of two as its denominator is called a dyadic rational. The numbers that can be represented as sums of consecutive positive integers are called polite numbers; they are exactly the numbers that are not powers of two.

Euclid's Elements, Book IX

The geometric progression 1, 2, 4, 8, 16, 32, ... (or, in the binary numeral system, 1, 10, 100, 1000, 10000, 100000, ... ) is important in number theory. Book IX, Proposition 36 of Elements proves that if the sum of the first Template:Math terms of this progression is a prime number (and thus is a Mersenne prime as mentioned above), then this sum times the Template:Mathth term is a perfect number. For example, the sum of the first 5 terms of the series Template:Math, which is a prime number. The sum 31 multiplied by 16 (the 5th term in the series) equals 496, which is a perfect number.

Book IX, Proposition 35, proves that in a geometric series if the first term is subtracted from the second and last term in the sequence, then as the excess of the second is to the first—so is the excess of the last to all those before it. (This is a restatement of our formula for geometric series from above.) Applying this to the geometric progression 31, 62, 124, 248, 496 (which results from 1, 2, 4, 8, 16 by multiplying all terms by 31), we see that 62 minus 31 is to 31 as 496 minus 31 is to the sum of 31, 62, 124, 248. Therefore, the numbers 1, 2, 4, 8, 16, 31, 62, 124 and 248 add up to 496 and further these are all the numbers that divide 496. For suppose that Template:Mvar divides 496 and it is not amongst these numbers. Assume Template:Math is equal to Template:Math, or 31 is to Template:Mvar as Template:Mvar is to 16. Now Template:Math cannot divide 16 or it would be amongst the numbers 1, 2, 4, 8 or 16. Therefore, 31 cannot divide Template:Math. And since 31 does not divide Template:Math and Template:Math measures 496, the fundamental theorem of arithmetic implies that Template:Math must divide 16 and be among the numbers 1, 2, 4, 8 or 16. Let Template:Math be 4, then Template:Math must be 124, which is impossible since by hypothesis Template:Math is not amongst the numbers 1, 2, 4, 8, 16, 31, 62, 124 or 248.

First 64 powers of two

Template:Anchor Template:OEIS

Template:Mvar Template:Math Template:Mvar Template:Math Template:Mvar Template:Math Template:Mvar Template:Math
0 [[1 (number)|Template:Val]] 16 [[65536 (number)|Template:Val]] 32 [[4294967296 (number)|Template:Val]] 48 Template:Val
1 [[2 (number)|Template:Val]] 17 Template:Val 33 Template:Val 49 Template:Val
2 [[4 (number)|Template:Val]] 18 Template:Val 34 Template:Val 50 Template:Val
3 [[8 (number)|Template:Val]] 19 Template:Val 35 Template:Val 51 Template:Val
4 [[16 (number)|Template:Val]] 20 Template:Val 36 Template:Val 52 Template:Val
5 [[32 (number)|Template:Val]] 21 Template:Val 37 Template:Val 53 Template:Val
6 [[64 (number)|Template:Val]] 22 Template:Val 38 Template:Val 54 Template:Val
7 [[128 (number)|Template:Val]] 23 Template:Val 39 Template:Val 55 Template:Val
8 [[256 (number)|Template:Val]] 24 Template:Val 40 Template:Val 56 Template:Val
9 [[512 (number)|Template:Val]] 25 Template:Val 41 Template:Val 57 Template:Val
10 [[1024 (number)|Template:Val]] 26 Template:Val 42 Template:Val 58 Template:Val
11 [[2048 (number)|Template:Val]] 27 Template:Val 43 Template:Val 59 Template:Val
12 [[4096 (number)|Template:Val]] 28 Template:Val 44 Template:Val 60 Template:Val
13 [[8192 (number)|Template:Val]] 29 Template:Val 45 Template:Val 61 Template:Val
14 [[16384 (number)|Template:Val]] 30 Template:Val 46 Template:Val 62 Template:Val
15 [[32768 (number)|Template:Val]] 31 Template:Val 47 Template:Val 63 Template:Val

Last digits

Starting with 2 the last digit is periodic with period 4, with the cycle 2–4–8–6–, and starting with 4 the last two digits are periodic with period 20. These patterns are generally true of any power, with respect to any base. The pattern continues where each pattern has starting point Template:Math, and the period is the multiplicative order of 2 modulo Template:Math, which is Template:Math (see Multiplicative group of integers modulo n).Template:Cn

Powers of 1024

Template:OEIS

The first few powers of 210 are slightly larger than those same powers of Template:Val (103). The first 11 powers of 210 values are listed below:

20 = 1 = 10000 (0% deviation)
210 = Template:Val ≈ 10001 (2.4% deviation)
220 = Template:Val ≈ 10002 (4.9% deviation)
230 = Template:Val ≈ 10003 (7.4% deviation)
240 = Template:Val ≈ 10004 (10.0% deviation)
250 = Template:Val ≈ 10005 (12.6% deviation)
260 = Template:Val ≈ 10006 (15.3% deviation)
270 = Template:Val ≈ 10007 (18.1% deviation)
280 = Template:Val ≈ 10008 (20.9% deviation)
290 = Template:Val ≈ 10009 (23.8% deviation)
2100 = Template:Val ≈ 100010 (26.8% deviation)

It takes approximately 17 powers of 1024 to reach 50% deviation and approximately 29 powers of 1024 to reach 100% deviation of the same powers of 1000.[3] Also see Binary prefixes and IEEE 1541-2002.

Powers of two whose exponents are powers of two

Because data (specifically integers) and the addresses of data are stored using the same hardware, and the data is stored in one or more octets (Template:Math), double exponentials of two are common. The first 21 of them are:

Template:Mvar Template:Math Template:Math Template:OEIS digits
0 1 2 1
1 2 4 1
2 4 16 2
3 8 256 3
4 16 [[65536 (number)|Template:Val]] 5
5 32 Template:Val Template:Val
6 64 Template:Replace Template:Val
7 128 Template:Replace Template:Val
8 256 Template:Replace Template:Val
9 Template:Val Template:Replace Template:Val
10 Template:Val Template:Replace Template:Val
11 Template:Val Template:Replace Template:Val
12 Template:Val Template:Replace Template:Val
13 Template:Val Template:Replace Template:Val
14 Template:Val Template:Replace Template:Val
15 Template:Val Template:Replace Template:Val
16 Template:Val Template:Replace Template:Val
17 Template:Val Template:Replace Template:Val
18 Template:Val Template:Replace Template:Val
19 Template:Val Template:Replace Template:Val
20 Template:Val Template:Replace Template:Val

Also see Fermat number, Tetration and Template:Slink.

Last digits for powers of two whose exponents are powers of two

All of these numbers over 4 end with the digit 6. Starting with 16 the last two digits are periodic with period 4, with the cycle 16–56–36–96–, and starting with 16 the last three digits are periodic with period 20. These patterns are generally true of any power, with respect to any base. The pattern continues where each pattern has starting point Template:Math, and the period is the multiplicative order of 2 modulo Template:Math, which is Template:Math (see Multiplicative group of integers modulo n).Template:Cn

Facts about powers of two whose exponents are powers of two

In a connection with nimbers, these numbers are often called Fermat 2-powers.

The numbers 22n form an irrationality sequence: for every sequence xi of positive integers, the series

i=0122ixi=12x0+14x1+116x2+

converges to an irrational number. Despite the rapid growth of this sequence, it is the slowest-growing irrationality sequence known.[4]

Powers of two whose exponents are powers of two in computer science

Since it is common for computer data types to have a size which is a power of two, these numbers count the number of representable values of that type. For example, a 32-bit word consisting of 4 bytes can represent Template:Math distinct values, which can either be regarded as mere bit-patterns, or are more commonly interpreted as the unsigned numbers from 0 to Template:Math, or as the range of signed numbers between Template:Math and Template:Math. For more about representing signed numbers see Two's complement.

Selected powers of two

Template:AnchorTemplate:Anchor22 = Template:Val
The number that is the square of two. Also the first power of two tetration of two.
Template:AnchorTemplate:Anchor28 = Template:Val
The number of values represented by the 8 bits in a byte, more specifically termed as an octet. (The term byte is often defined as a collection of bits rather than the strict definition of an 8-bit quantity, as demonstrated by the term kilobyte.)
Template:AnchorTemplate:Anchor210 = Template:Val
The binary approximation of the kilo-, or Template:Val multiplier, which causes a change of prefix. For example: Template:Val = 1 kilobyte[5] (or kibibyte).
Template:AnchorTemplate:Anchor212 = Template:Val
The hardware page size of an Intel x86-compatible processor.
Template:AnchorTemplate:Anchor215 = Template:Val
The number of non-negative values for a signed 16-bit integer.
Template:AnchorTemplate:Anchor216 = Template:Val

Template:Main

The number of distinct values representable in a single word on a 16-bit processor, such as the original x86 processors.[6]
The maximum range of a short integer variable in the C#, Java, and SQL programming languages. The maximum range of a Word or Smallint variable in the Pascal programming language.
The number of binary relations on a 4-element set.
Template:AnchorTemplate:Anchor220 = Template:Val
The binary approximation of the mega-, or Template:Val multiplier, which causes a change of prefix. For example: Template:Val = 1 megabyteTemplate:R (or mebibyte).
Template:AnchorTemplate:Anchor224 = Template:Val
The number of unique colors that can be displayed in truecolor, which is used by common computer monitors.
This number is the result of using the three-channel RGB system, where colors are defined by three values (red, green and blue) independently ranging from 0 (00) to 255 (FF) inclusive. This gives 8 bits for each channel, or 24 bits in total; for example, pure black is #000000, pure white is #FFFFFF. The space of all possible colors, Template:Val, can be determined by 166 (6 digits with 16 possible values for each), 2563 (3 channels with 256 possible values for each), or 224 (24 bits with 2 possible values for each).
The size of the largest unsigned integer or address in computers with 24-bit registers or data buses.
Template:AnchorTemplate:Anchor230 = Template:Val
The binary approximation of the giga-, or Template:Val multiplier, which causes a change of prefix. For example, Template:Val = 1 gigabyteTemplate:R (or gibibyte).
Template:AnchorTemplate:Anchor231 = Template:Val Template:See also
The number of non-negative values for a signed 32-bit integer. Since Unix time is measured in seconds since January 1, 1970, it will run out at Template:Val seconds or 03:14:07 UTC on Tuesday, 19 January 2038 on 32-bit computers running Unix, a problem known as the year 2038 problem.
Template:AnchorTemplate:Anchor232 = Template:Val

Template:See also

The number of distinct values representable in a single word on a 32-bit processor.[7] Or, the number of values representable in a doubleword on a 16-bit processor, such as the original x86 processors.[6]
The range of an int variable in the Java, C#, and SQL programming languages.
The range of a Cardinal or Integer variable in the Pascal programming language.
The minimum range of a long integer variable in the C and C++ programming languages.
The total number of IP addresses under IPv4. Although this is a seemingly large number, the number of available 32-bit IPv4 addresses has been exhausted (but not for IPv6 addresses).
The number of binary operations with domain equal to any 4-element set, such as GF(4).
Template:AnchorTemplate:Anchor240 = Template:Val
The binary approximation of the tera-, or Template:Val multiplier, which causes a change of prefix. For example, Template:Val bytes = 1 terabyteTemplate:R or tebibyte.
Template:AnchorTemplate:Anchor250 = Template:Val
The binary approximation of the peta-, or Template:Val multiplier. Template:Val bytes = 1 petabyteTemplate:R or pebibyte.
Template:AnchorTemplate:Anchor253 = Template:Val
The number until which all integer values can exactly be represented in IEEE double precision floating-point format. Also the first power of 2 to start with the digit 9 in decimal.
Template:AnchorTemplate:Anchor256 = Template:Val
The number of different possible keys in the obsolete 56 bit DES symmetric cipher.
Template:AnchorTemplate:Anchor260 = Template:Val
The binary approximation of the exa-, or Template:Val multiplier. Template:Val bytes = 1 exabyteTemplate:R or exbibyte.
Template:AnchorTemplate:AnchorTemplate:Anchor263 = Template:Val
The number of non-negative values for a signed 64-bit integer.
Template:Anchor263 − 1, a common maximum value (equivalently the number of positive values) for a signed 64-bit integer in programming languages.
Template:AnchorTemplate:AnchorTemplate:Anchor264 = Template:Val
The number of distinct values representable in a single word on a 64-bit processor. Or, the number of values representable in a doubleword on a 32-bit processor. Or, the number of values representable in a quadword on a 16-bit processor, such as the original x86 processors.[6]
The range of a long variable in the Java and C# programming languages.
The range of a Int64 or QWord variable in the Pascal programming language.
The total number of IPv6 addresses generally given to a single LAN or subnet.
Template:Anchor264 − 1, the number of grains of rice on a chessboard, according to the old story, where the first square contains one grain of rice and each succeeding square twice as many as the previous square. For this reason the number is sometimes known as the "chess number".
264 − 1 is also the number of moves required to complete the legendary 64-disk version of the Tower of Hanoi.
Template:AnchorTemplate:Anchor268 = Template:Val
The first power of 2 to contain all decimal digits. Template:OEIS
Template:AnchorTemplate:Anchor270 = Template:Val
The binary approximation of the zetta-, or Template:Val multiplier. Template:Val bytes = 1 zettabyteTemplate:R (or zebibyte).
Template:AnchorTemplate:Anchor280 = Template:Val
The binary approximation of the yotta-, or Template:Val multiplier. Template:Val bytes = 1 yottabyteTemplate:R (or yobibyte).
Template:AnchorTemplate:Anchor286 = Template:Val
286 is conjectured to be the largest power of two not containing a zero in decimal.[8]
Template:AnchorTemplate:Anchor296 = Template:Val
The total number of IPv6 addresses generally given to a local Internet registry. In CIDR notation, ISPs are given a Template:IPaddr, which means that Template:Nowrap bits are available for addresses (as opposed to network designation). Thus, 296 addresses.
2108 = Template:Replace
The largest known power of 2 not containing a 9 in decimal. Template:OEIS
2126 = Template:Replace
The largest known power of 2 not containing a pair of consecutive equal digits. Template:OEIS
Template:AnchorTemplate:Anchor2128 = Template:Replace
The total number of IP addresses available under IPv6. Also the number of distinct universally unique identifiers (UUIDs).
2168 = Template:Replace
The largest known power of 2 not containing all decimal digits (the digit 2 is missing in this case). Template:OEIS
2192 = Template:Replace
The total number of different possible keys in the AES 192-bit key space (symmetric cipher).
Template:AnchorTemplate:Anchor2229 = Template:Replace
2229 is the largest known power of two containing the least number of zeros relative to its power. It is conjectured by Metin Sariyar that every digit 0 to 9 is inclined to appear an equal number of times in the decimal expansion of power of two as the power increases. Template:OEIS
2256 = Template:Replace
The total number of different possible keys in the AES 256-bit key space (symmetric cipher).
2Template:Val = Template:Replace (309 digits)
The maximum number that can fit in a 64-bit IEEE double-precision floating-point format (hence the maximum number that can be represented by many programs, for example Microsoft Excel).
2Template:Val = Template:Replace (Template:Val digits)
The maximum number that can fit in a 128-bit IEEE quadruple-precision floating-point format
2Template:Val = Template:Replace (Template:Val digits)
The maximum number that can fit in a 256-bit IEEE octuple-precision floating-point format
2Template:Val = Template:Replace (Template:Val digits)
One more than the largest known prime number Template:As of.[9]

Powers of two in music theory

In musical notation, all unmodified note values have a duration equal to a whole note divided by a power of two; for example a half note (1/2), a quarter note (1/4), an eighth note (1/8) and a sixteenth note (1/16). Dotted or otherwise modified notes have other durations. In time signatures the lower numeral, the beat unit, which can be seen as the denominator of a fraction, is almost always a power of two.

If the ratio of frequencies of two pitches is a power of two, then the interval between those pitches is full octaves. In this case, the corresponding notes have the same name.

The mathematical coincidence 27(32)12, from log3log2=1.58491912, closely relates the interval of 7 semitones in equal temperament to a perfect fifth of just intonation: 27/123/2, correct to about 0.1%. The just fifth is the basis of Pythagorean tuning; the difference between twelve just fifths and seven octaves is the Pythagorean comma.[10]

Other properties

As each increase in dimension doubles the number of shapes, the sum of coefficients on each row of Pascal's triangle is a power of two
The sum of powers of two from zero to a given power, inclusive, is 1 less than the next power of two, whereas the sum of powers of two from negative infinity to a given power, inclusive, equals the next power of two.

The sum of all Template:Mvar-choose binomial coefficients is equal to Template:Math. Consider the set of all Template:Mvar-digit binary integers. Its cardinality is Template:Math. It is also the sums of the cardinalities of certain subsets: the subset of integers with no 1s (consisting of a single number, written as Template:Mvar 0s), the subset with a single 1, the subset with two 1s, and so on up to the subset with Template:Mvar 1s (consisting of the number written as Template:Mvar 1s). Each of these is in turn equal to the binomial coefficient indexed by Template:Mvar and the number of 1s being considered (for example, there are 10-choose-3 binary numbers with ten digits that include exactly three 1s).

Currently, powers of two are the only known almost perfect numbers.

The cardinality of the power set of a set Template:Math is always Template:Math, where Template:Math is the cardinality of Template:Math.

The number of vertices of an Template:Mvar-dimensional hypercube is Template:Math. Similarly, the number of Template:Math-faces of an Template:Mvar-dimensional cross-polytope is also Template:Math and the formula for the number of Template:Mvar-faces an Template:Mvar-dimensional cross-polytope has is 2x(nx).

The sum of the first n powers of two (starting from 1=20) is given by

k=0n12k=20+21+22++2n1=2n1

for n being any positive integer.

Thus, the sum of the powers

1+21+22++263

can be computed simply by evaluating: 2641 (which is the "chess number").

The sum of the reciprocals of the powers of two is 1. The sum of the reciprocals of the squared powers of two (powers of four) is 1/3.

The smallest natural power of two whose decimal representation begins with 7 is[11]

246=70 368 744 177 664.

Every power of 2 (excluding 1) can be written as the sum of four square numbers in 24 ways. The powers of 2 are the natural numbers greater than 1 that can be written as the sum of four square numbers in the fewest ways.

As a real polynomial, an + bn is irreducible, if and only if n is a power of two. (If n is odd, then an + bn is divisible by a+b, and if n is even but not a power of 2, then n can be written as n = mp, where m is odd, and thus an+bn=(ap)m+(bp)m, which is divisible by ap + bp.) But in the domain of complex numbers, the polynomial a2n+b2n (where n ≥ 1) can always be factorized as a2n+b2n=(an+bni)(anbni), even if n is a power of two.

The only known powers of 2 with all digits even are 21 = 2, 22 = 4, 23 = 8, 26 = 64 and 211 = Template:Val.[12] The first 3 powers of 2 with all but last digit odd is 24 = 16, 25 = 32 and 29 = 512. The next such power of 2 of form 2n should have n of at least 6 digits. The only powers of 2 with all digits distinct are 20 = 1 to 215 = Template:Val, 220 = Template:Val and 229 = Template:Val.

Negative powers of two

Huffman codes deliver optimal lossless data compression when probabilities of the source symbols are all negative powers of two.[13]

See also

References

Template:Reflist

Template:- Template:Series (mathematics) Template:Classes of natural numbers Template:Large numbers

  1. Template:Cite book
  2. Template:Cite book
  3. log1024/10001.517.1, log1024/1000229.2.
  4. Template:Citation
  5. Template:Cite book Template:Pb Template:Cite book
  6. 6.0 6.1 6.2 Though they vary in word size, all x86 processors use the term "word" to mean 16 bits; thus, a 32-bit x86 processor refers to its native wordsize as a dword
  7. Template:Cite web
  8. Weisstein, Eric W. "Zero". From MathWorld. Template:Cite web
  9. Template:Cite web
  10. Template:Cite book
  11. Template:Cite web
  12. Template:Cite OEIS
  13. Huffman coding, from: Fundamental Data Compression, 2006