Recently I came across a line like this
public final static int DELETION_MASK = 0x01;
why is it not like
It helps with the mental conversion between the integer value and the bit pattern it represents, which is the thing that matters for flags and masks.
Because 16 is a power of 2 (unlike 10), you get nice repeating things like this:
public final static int A_FLAG = 0x01; // 00000001
public final static int B_FLAG = 0x02; // 00000010
public final static int C_FLAG = 0x04; // 00000100
public final static int D_FLAG = 0x08; // 00001000
public final static int E_FLAG = 0x10; // 00010000
public final static int F_FLAG = 0x20; // 00100000
public final static int G_FLAG = 0x40; // 01000000
public final static int H_FLAG = 0x80; // 10000000