It shows the bit more clearly. 0x80 is clearly a value with the top nybble set to 8, and the bottom nybble set to 0 ..., which does not disappear from the decimal value.
As another example, if I wanted to mask the second and third bytes of an integer, I could use:
int masked = original & 0xffff00;
I wrote this code without a calculator or anything like that. There is no way to do the same for the decimal equivalent - I cannot multiply 65535 by 256 in my head with any chance of success, and the resulting code would not be nearly as clear anyway.
source share