so I have an integer that I want to get rid of negative I'm using signed int in c and int in java because they have the same range
java :
int y = -697451589;
int test = ((y & 0xFFFFFFFF) >> 8 )
System.out.println(test);
Results:
11111111110101100110110110111011 ( -2724421)
In C :
int y = -697451589;
int test = ((y & 0xFFFFFFFF) >> 8 )
printf("%d" , test);
Results :
110101100110110110111011 ( 14052795)
why in java the result are different? instead of 0xF is to delete the number 1 in front of the integer? why in java does not erase but in C it erases, I try to use long:
long y = -697451589;
long test = ((y & 0xFFFFFFFFL) >> 8 );
System.out.println(test);
And it works like C, but I want to use int data not long, does anyone know the solution?