uso titledborder poner con borde java hex

poner - titledborder java



¿Ventaja de usar 0x01 en lugar de 1 para una variable entera? (4)

Recientemente me encontré con una línea como esta

public static static int DELETION_MASK = 0x01;

porque no es como

public static static int DELETION_MASK = 1;

¿Hay alguna ventaja en el uso del primer enfoque distinto de 0xA y los hexadecimales de límite superior se pueden convertir con facilidad? En este caso es solo una constante que representa 1.


Ayuda con la conversión mental entre el valor entero y el patrón de bits que representa, que es lo que importa para las banderas y las máscaras.

Debido a que 16 es un poder de 2 (a diferencia de 10), obtienes buenas cosas como esta:

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


Es facil de entender Cuando pensamos en enmascarar, entonces pensamos en números HEX o BIN.


Solo eso, será coherente cuando defina NONDELETION_MASK = 0x0A.


Si bien no hay una diferencia en el código producido por el compilador, las máscaras de bits se escriben tradicionalmente usando la notación hexadecimal, porque es mucho más fácil para un humano convertir a una forma binaria. Otra convención común es incluir los ceros iniciales cuando se conoce la longitud del campo. Por ejemplo, para un campo C int , es común escribir:

#define MASK 0x0000ffff

Además, las constantes hexadecimales indican al programador que probablemente sea una máscara de bits, o un valor que estará involucrado de alguna manera en las operaciones bitwise y que probablemente deba tratarse de manera especial.

Como 0xffffffff adicional, las notaciones hexadecimales también pueden evitar problemas con números negativos: 0xffffffff es de hecho un número negativo ( -1 para ser exactos). En lugar de hacer malabares con el signo y los números del complemento a 2, puede simplemente especificar la máscara en hexadecimal y terminar con ella.

Desde Java 7, también puede usar literales binarios, lo que hace que sea aún más fácil para un humano comprender qué bits se configuran en una máscara de bits. Y los literales binarios pueden usar underscores para colocar los bits en grupos separados.

Eso significa que lo siguiente también es válido:

public final static int DELETION_MASK = 0b0000_0001;