Skip to content

Instantly share code, notes, and snippets.

@MocoNinja
Created August 16, 2020 17:31
Show Gist options
  • Save MocoNinja/352bf2f6fa72ee6775629c8a9e7284a8 to your computer and use it in GitHub Desktop.
Save MocoNinja/352bf2f6fa72ee6775629c8a9e7284a8 to your computer and use it in GitHub Desktop.
Representación interna de los enteros en Java: quick reminder
/**
*
* @author javier
* Esta clase rápirda me permite ver cómo almacena java los enteros como número de 32 bits
* y los negativos como el complemento de 2
*/
public class ComplementosDos {
private static final int numeroPorDefecto = 5;
public static void main(String[] args) {
boolean sacarInfoValoresLimite = false;
int numeroPruebas = numeroPorDefecto;
if (args.length > 0) {
try {
numeroPruebas = Integer.parseInt(args[0]);
System.out.println("Leído argumento: " + numeroPruebas + "...");
} catch (NumberFormatException e) {
System.err.println(args[0] + " no puede ser parseado como número. Usando valor por defecto de: " + numeroPorDefecto + "...");
}
} else {
System.out.println("No se ha pasado ningún número como argumento. Usando valor por defecto de: " + numeroPruebas + "...");
}
String numeroBinaryString = getRepresentacionBinariaFormateadaDeNumeroDe32Bits(numeroPruebas);
System.out.printf("Java almacena %11d en binario como: %s...\n", numeroPruebas, numeroBinaryString);
String numeroNegativoBinaryString = getRepresentacionBinariaFormateadaDeNumeroDe32Bits(numeroPruebas * -1);
System.out.printf("Java almacena %11d en binario como: %s...\n", numeroPruebas * -1, numeroNegativoBinaryString);
if (sacarInfoValoresLimite) {
printInfoValoresLimite();
}
}
public static void printInfoValoresLimite() {
int maximo = Integer.MAX_VALUE;
String maximoBString = getRepresentacionBinariaFormateadaDeNumeroDe32Bits(maximo);
System.out.printf("El entero máximo es: %d\nSu representación binaria es: %s\n", maximo, maximoBString);
int minimo = Integer.MIN_VALUE;
String minimoBString = getRepresentacionBinariaFormateadaDeNumeroDe32Bits(minimo);
System.out.printf("El entero mínimo es: %d\nSu representación binaria es: %s\n", minimo, minimoBString);
}
public static String getRepresentacionBinariaFormateadaDeNumeroDe32Bits(int numero) {
return String.format("%32s", Integer.toBinaryString(numero)).replace(' ', '0');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment