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....
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.
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.