File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes casting problem...from long to byte.. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "casting problem...from long to byte.." Watch "casting problem...from long to byte.." New topic

casting problem...from long to byte..

amit taneja
Ranch Hand

Joined: Mar 14, 2003
Posts: 812
I m preparing for scjp and refering book by bertbates/kathy seera...

I m not able to clear one funda that while explicit casting from long to byte... when the value is greater then +127.

in that book ... in one page there is written about removing of higher order bits left to 8 lower order bits...and if last bit left in that 8 bits is 1 then the no. will be negative of remaining 7 bits

but in other page its witten about complement notation... i.e to find out the complement of the no. and add 1 to it..and then find out the final no. stored in byte...?

can any body pls tell me whats is all about and what is truth ..and even when we follow complement startergy but why so ???

answer in details ..

thanx and regards,

Thanks and Regards, Amit Taneja
Steven Bell
Ranch Hand

Joined: Dec 29, 2004
Posts: 1071
My guess is that the book is saying the following.

If you cast a long to a byte and the 8th bit is a 1 that number will be negative.
In order to find out the value of that negative number you must take the two's complement of the number.

It's been a couple years since I've done two's complement, but I think it goes something like flip the bits and add 1, or add 1 and flip the bits. I'm sure somebody here remembers how to do it.
marc weber

Joined: Aug 31, 2004
Posts: 11343

See this page on two's complement...

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
I agree. Here's the link:
subject: casting problem...from long to byte..
It's not a secret anymore!