0
Una ayuda con java
Hola no entiendo en donde podria fallar tal vez en el tamaño del dato pero nose , solo estoy indagando si alguien me me explica es del moduli de oop java el ultimo proyecto me sale 4 bien y 1 error pero no se donde podria estar https://code.sololearn.com/cg5oJ1uTk56r/?ref=app
11 odpowiedzi
+ 2
No estoy seguro pero creo que el problema está en la línea 14. Dada la forma en que se está obteniendo el número en binario quizá sea mejor que la función retorne un String y no un int. Tampoco entiendo bien el if que usas en tu función, ¿es para limitar el valor máximo de x? si es así es probable que el sistema esté probando tu código con un valor más grande aún.
Prueba así:
static public String toBinary (int i){
int num = i;
String binary="";
while(num > 0) {
binary = (num%2)+binary;
num /= 2;
}
return binary;
}
+ 2
Por que no usas
sc.nextInt(), sc.nextLong()...
En vez de...
sc.nextLine()
Sería más lógico desde el punto de vista de diseño de software pasar el tipo de dato correcto en vez de String
Y la implementación de la función creo que es la que te pone Diego de la Fuente Curaqueo pero con particularidades
public static String toBinary (int i){
// assume this bits quantity
final int qbits = Integer.SIZE;
StringBuilder stb = new StringBuilder(qbits);
int v = i;
// use 2-modulus division algorithm
while (v > 0) {
stb.insert(0, v % 2);
v /= 2;
}
// fill at begining until type size
stb.insert(0,
"0".repeat(Math.max(0,
qbits - stb.length()))
);
return stb.toString();
}
+ 1
Gracias si ayer lo resolvi , pero todo dentro del main asi me lo dieron con int x , claro lo cambie a String yo pense que no debia cambiar lo que ya me dan hecho , igualmente gracias
+ 1
ok
.parse method expects different format:
Integer.parseInt( "-1111", 2)
+ 1
also this returns math format -1111
Integer.toString(-15, 2)
0
it doesn't work with negative numbers, compare with
Integer.toBinaryString(x)
0
zemiak to represent negative numbers you need first know how many bytes you have to represent it: 16, 32, 64... and if its negative fill left with zeros except first that is one to represent signum
0
David Ordás , not in Java, eg this is -15
11111111111111111111111111110001
0
zemiak are you sure????
for represent a short you need 16 chars/bits, for int 32, for long 64...
https://code.sololearn.com/cP4y568u3dwh/?ref=app
0
Jose G8 echa un vistazo a
https://code.sololearn.com/cP4y568u3dwh/?ref=app
0
Thanks zemiak another thing that I learn but a bit confused between
"valueOf/parseInt" vs "parseUnsignedInt"
as you can see in my playground (I update it)