Created
August 16, 2020 17:31
-
-
Save MocoNinja/352bf2f6fa72ee6775629c8a9e7284a8 to your computer and use it in GitHub Desktop.
Representación interna de los enteros en Java: quick reminder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* @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