Хотя в коде, создаваемом компилятором, нет различий, битовые маски традиционно пишутся с использованием шестнадцатеричной записи, поскольку человеку значительно проще преобразовать в двоичную форму. Другое распространенное соглашение состоит в том, чтобы включать начальные нули, когда известна длина поля. Например. для поля C int
обычно пишется:
#define MASK 0x0000ffff
Кроме того, шестнадцатеричные константы указывают программисту, что это , вероятно, битовая маска или значение, которое будет каким-либо образом задействовано в побитовых операциях и, вероятно, должно обрабатываться специально.
В качестве бонуса шестнадцатеричные обозначения могут также избежать проблем с отрицательными числами: 0xffffffff
на самом деле является отрицательным числом (точнее, -1
). Вместо того, чтобы манипулировать со знаком и числами, дополняющими 2, вы можете просто указать маску в шестнадцатеричном формате и покончить с этим.
Начиная с Java 7, вы также можете использовать двоичные литералы , что позволяет человеку еще проще понять, какие биты установлены в битовой маске. И двоичные литералы могут использовать подчеркивания , чтобы разбить биты на отдельные группы.
Это означает, что также верно следующее:
public final static int DELETION_MASK = 0b0000_0001;