+ 7
How output is 126?
int i =130; byte b = (byte)i; System.out.print(b); //Output is -126 😢
4 ответов
+ 24
ok , let me add to the answer above ☺
//range of byte will be from -2^7 to 2^7 that is -128 to 127 , since 132 can't come in this range ... to bring 132 in this range , substraction of 256 will be done ... ie 132 -256 = -126
//thats the fast approach especially when n belongs to [128 to 256]
//but there is an general approach , in which u have to convert the decimal number to binary format & since byte can hold only 8 bits ... so take only right most 8 digits & check if left most bit is 0 , nothing u have to do ... just convert that back to decimal ... if left most bit is 1 , then -1 to that binary number & then take 1's complement (replacing 1 by 0 & vice versa) & then convert it back to decimal system & put sign as -ve (bcz of 1 in left most digit)
//thats the general approach
//btw i searched for some good approach & got to know 2 - 3 interesting things👌 more excluding it 😂☺ ... yeahhh!!!!
+ 5
You should read about the data types deeper. Also about the binary numbers and their representations.
byte is 8 bit data type.
It means that you have 256 possible bit combinations for the numbers. And more specific from -128 to 127, because the leading bit is for the sign of the number (0 for positive, 1 for negative).
Since it's not possible to put 130, in byte, here is what happens:
127 + 1 -> -128
127 + 2 -> -127
127 + 3 -> -126
+ 4
@gaurav that's not clear 2 me plz can you explain it...by taking the above as example?