File APIs for Java Developers Manipulate DOC, XLS, PPT, PDF and many others from your application. http://aspose.com/file-tools
Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login

# Shift operator conversions

amarkirt saroay
Ranch Hand

Joined: Mar 16, 2008
Posts: 167
I feel lost when i have to convert a number into a byte representaion from an int.Like if int i=168 then how to convert it into -88 in 8 bits?

Another issue is if a byte =<some number exceeding 127> how to know what will be its equivalent form in byte representaion,
say eg. System.out.println((byte)128);
and System.out.println((byte)-128);

Is there any quick tip for such conversions please....

SCJP-75%
SCWCD-82%
ioanis siafu
Greenhorn

Joined: Feb 06, 2008
Posts: 6
168 has the 10101000 representation in binary. I think that the first byte(1) means it is a negative number. Then the bits of the number left (0101000) will be inversed. 0101000 -> 1010111. 1010111 is 88 in binary. The same happens with 128. 128 is represented 10000000 in binary. Fallowing this rule from 10000000 (- minus because the first digit is one)and inversing the rest of the number we obtain 1111111(127 in decimal). I don't know if this rule remains for large numbers.
ioanis siafu
Greenhorn

Joined: Feb 06, 2008
Posts: 6
I was wrong in my explications. The modulus of the two numbers added is 256.
Nikhil Raj
Greenhorn

Joined: Mar 20, 2008
Posts: 16
168 is represented as 10101000 in binary.The most significant bit is the sign bit which means that 10101000 is actually a negative number and not 168.To get the negative number, first take the one's complement of 10101000,
ie 01010111. now add 1 to this which gives 01011000 which is 88.
So the number represented by 10101000 is actually -88.
Nikhil Raj
Greenhorn

Joined: Mar 20, 2008
Posts: 16
for larger numbers only their least significant 8 bits are taken..
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

"Nikhil Raj R S",