Range of numbers in a byte

How numbers are arranged in a bit, whats its range and more...

We know that a number gets stored in 8 bits, as a programmer you might also know that numbers range from (-128 to 127) in 1 byte. But 2^8 = 256 isn't it? So why? How do the negative numbers come into the picture and why it's not (-256 to 256) or not (-128 to 128)?

How are the numbers arranged into a byte?

Numbers are arranged into a box of 8 bits, You can imagine a table with 8 rows, now the 0s and 1s will be placed there accordingly, but have you ever thought about how the negative numbers are arranged?

The leftmost row is for the sign, 0 means + and 1 means -. See the image below for a better understanding.

Image shows how the numbers are arranged in a byte with sign, the MSB tells about sign, 0 is for + and 1 is for -

Why "-128 to 127"?

By the above paragraph, you can conclude that numbers(0s and 1s ) get placed in only 7 bits or boxes, So, 2^7=128, and the remained bit is for the sign, so it comes out -128 to 128 right?

Its range becomes 257 if we calculate from -128 to 128, but a byte can take up to 256(2^8) right? Because 0 is a number too, So it becomes -128 to 127, You can store 256 unique numbers only.

Why not "-127 to 128"?

You might think "why not -127 to 128?" Cheating right? It's not.

0 is taken from the positive side because 0 is a positive number. (-) negative of 0 is 0 in binary, How?

You have to convert 0 into a negative binary first, take 2's compliment of 0 it becomes 100000000, you can notice it's 9 bits, and the extra bit will be discarded as a byte can only take up to 8 bits.

So, you can see -0 is 0 itself.

Numbers range from (0 to 127 = 128) +( -1 to -128 = 128) = 256 unique numbers.

FORMULA for Range = -2^(n-1) to 2^(n-1) -1 .

Summary

  • You can store 256 unique numbers in a bit.

  • The first bit or MSB is reserved for the sign of the number.

  • If MSB is 0 it's a +ve number, if 1 it's a -ve number.

  • -0 = 0 in binary.

  • A bit can consist of -128 to 127 numbers including 0.

  • FORMULA for Range = -2^(n-1) to 2^(n-1) -1 .

  • Watch the video for a detailed discussion.