Shanna Ripley

Greenhorn

Posts: 18

posted 6 years ago

Hi All,

I was doing a little test program...multiplying a byte, initialised to 1, by 8. I print out the result after each multiplication.

The results are:

2

4

8

16

32

64

-128

0

Can anyone tell me why the seventh value is -128 (why minus?) and the eighth is 0??

I know the Byte ranges from -128 to 127....I'm guessing that has something to do with it.

Thanks in advance

I was doing a little test program...multiplying a byte, initialised to 1, by 8. I print out the result after each multiplication.

The results are:

2

4

8

16

32

64

-128

0

Can anyone tell me why the seventh value is -128 (why minus?) and the eighth is 0??

I know the Byte ranges from -128 to 127....I'm guessing that has something to do with it.

Thanks in advance

posted 6 years ago

Short answer. The number overflowed.

For the longer answer why the numbers are -128 and then zero -- google for "twos complement", which is the format used to represent signed numbers in Java.

Henry

Shanna Ripley wrote:Can anyone tell me why the seventh value is -128 (why minus?) and the eighth is 0??

I know the Byte ranges from -128 to 127....I'm guessing that has something to do with it.

Short answer. The number overflowed.

For the longer answer why the numbers are -128 and then zero -- google for "twos complement", which is the format used to represent signed numbers in Java.

Henry

posted 6 years ago

The top bit is used for the sign. So, when you get to 128, the bit pattern would be

1000 0000

The first bit tells us the answer is negative, then we use 2's complement to figure out the value. When you next double that, you would have

1 0000 0000

but the leading 1 gets chopped off and lost forever, leaving you with 0.

1000 0000

The first bit tells us the answer is negative, then we use 2's complement to figure out the value. When you next double that, you would have

1 0000 0000

but the leading 1 gets chopped off and lost forever, leaving you with 0.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

Consider Paul's rocket mass heater. |