simple calc
1 | int calc(int i, int j) { |
- variable 0 is
this
->aload_0
javap -c
1 | int calc(int, int); |
a | b |
---|---|
[0] | push i value into stack |
[1] | push j value into stack |
[2] | add; result push stack |
[3] | push constant 1 into stack |
[4] | subtract; push result |
[5] | j value push stack |
[6] | push constant 1 again |
[7] | subtract; push result |
[8] | push constant -1 |
[9] | do XOR; push result |
[10] | do AND; push result |
[11] | return int |
~(j-1)
transform into-1^(j-1)
exclusive or,-1
bytes is all high bit.
any int oxr with all high bit, the high bit will be low, low will be high.