Question on enumeration range

I'm using a book to learn C++ and I don't understand its explanation on how to find the enumerator's range. The explanation is as follows:

The range is defined as follows:First, to find the upper limit, you take the largest enumerator value. Then you find the smallest power of two greater than this largest value and subtract one. The result is the upper end of the range. (For example, the largest bigstep value, as previously defined, is 101. The smallest power of two greater than this is 128, so the upper end of the range is 127.)
Next, to find the lower limit, you find the smallest enumerator value. If it is 0 or greater, the lower limit for the range is 0. If the smallest enumerator is negative, you use the same approach for finding the upper limit but toss in a minus sign.(For example, if the smallest enumerator is -6, the next power of two [times a minus sign] is -8, and the lower limit is -7)


The reference to "the largest bigstep value" refers to a enum declaration earlier.

The part that I get lost on is when it refers to "find the smallest power of..."
...What? What's an "enumerator's range"? I've never heard of anything like that.
What's the book?
The book is C++ Primer Plus 5th edition
By: Stephen Prata

I may have used the wrong term, it is under the topic heading of "Value Ranges for Enumerations" in the book.
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128

I am assuming that the enumerator's range has something to do with bytes and how it is stored in memory since it is in powers of two. Does this help?
Find the smallest power of two means check 2^1, 2^2, 2^3, until you find the smallest one that fits the criteria.
I get it now.. Don't know why that wasn't making sense before. Thanks for the help.
can you mark as solved?
Topic archived. No new replies allowed.