¿como puedo sacar el binario de un numero?

Iniciado por danielo-, 2 Septiembre 2010, 21:46 PM

0 Miembros y 1 Visitante están viendo este tema.

danielo-

Hola a todos, de nuevo dando mis rondas por el foro de java, tengo una dudota!  :-\  .
Tengo como parte de una tarea, extraer los bits de un numero int para poder trabajar con ellos...  WTF? jaja, pues la verdad no lo entendi mucho, entiendo que un int al final de cuentas en un binario, pero ahora  mi pregunta es: ¿Cómo extraigo los binarios de este numero?
Es decir,
int i=10;
su binario es 1010,
pero no busco ni como extraerlo ni como  almacenarlo...
Es un poco confuso yo creo.. Espero puedan ayudarme :) Gracias

Franki

#1
No lo he probado, pero cuando conviertes un Integer en String con el método toString() puedes elegir la base en la que quieres representarlo.

Código (java) [Seleccionar]
int numero = 10;

String binario = Integer.toString(numero ,2);

System.out.println(binario); //Esto deberia imprimir 1010



EDITO:

Más fácil todavía, utilizar el método estático toBinaryString de la clase Integer:

Código (java) [Seleccionar]
String binario = Integer.toBinaryString(numero);

danielo-

yiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuummmmmmmmmmmmmmmmm.....PUF!!!!!   :laugh:
jaja... Lo siento Franki, gracias por comentar pero no es lo que necesito.

Bueno creo que no me explique bien, resulta que yo necesito trabajar con los binarios de un numero, no puedo almacenarlo en un String porque estoy simulando una maquinita con muy poca memoria, de hecho necesito hacer suma, resta, división y multiplicación en binario, pero no con las operaciones tradionales, sino con operadores lógicos, and or, xor, etc, y ps la verdad es que no se como hacerle, tienen alguna idea de como hacer esto?
Tengo aproximadamente 10 horas para entregarlo :)

Debci

Cita de: danyelk_6u5 en  3 Septiembre 2010, 06:29 AM
yiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuummmmmmmmmmmmmmmmm.....PUF!!!!!   :laugh:
jaja... Lo siento Franki, gracias por comentar pero no es lo que necesito.

Bueno creo que no me explique bien, resulta que yo necesito trabajar con los binarios de un numero, no puedo almacenarlo en un String porque estoy simulando una maquinita con muy poca memoria, de hecho necesito hacer suma, resta, división y multiplicación en binario, pero no con las operaciones tradionales, sino con operadores lógicos, and or, xor, etc, y ps la verdad es que no se como hacerle, tienen alguna idea de como hacer esto?
Tengo aproximadamente 10 horas para entregarlo :)

en ese caso deberias tratar con arrays boobleanos y a partir de ahi ya puedes operar normalmente con operadores logicos no?
Saludos

danielo-

umm...no lo se... pero creo que tienes raazon, encontre esto por la red
pero no le entiendo mucho

Código (java) [Seleccionar]

public void extractBin(int x){
int showMask = 1<<31;
//Buffer para almacenar los 32 bits de un entero y 3 espacios entre cada byte
String c ="";
int seg=0;
//ciclo para recorrer todos los bits del entero

for (int bit=1;bit<=32;bit++){
c+=((x & showMask)==0 ? '0' : '1' );
x<<=1;

}
}



... Funciona, pero no entiendo que hace...haber si ustedes tienen ,mas idea de que es esto.
Saludos!

Debci

Cita de: danyelk_6u5 en  4 Septiembre 2010, 01:29 AM
umm...no lo se... pero creo que tienes raazon, encontre esto por la red
pero no le entiendo mucho

Código (java) [Seleccionar]

public void extractBin(int x){
int showMask = 1<<31;
//Buffer para almacenar los 32 bits de un entero y 3 espacios entre cada byte
String c ="";
int seg=0;
//ciclo para recorrer todos los bits del entero

for (int bit=1;bit<=32;bit++){
c+=((x & showMask)==0 ? '0' : '1' );
x<<=1;

}
}



... Funciona, pero no entiendo que hace...haber si ustedes tienen ,mas idea de que es esto.
Saludos!

Lo cierto es que usa operandos quizás un poco complejos como para entenderse facilmente, te recomiendo que mires sobre operandos a nivel de memoria, correderas de bits y demás.

Saludos

danielo-

mm... si... de hecho algo asi debería de ser, pero bueno... Seguire con la investigación  a ver que logro, ya entregue el trabajo, no como queria el profe, pero no me quedaba opcion... pero me parece interesante esto... hay que checar mas..
Gracias y saludos..
Por cierto, a ver si cuando tenga las operaciones los subo aqui, seri interesante jajaj ;)

Debci

Cita de: danyelk_6u5 en  6 Septiembre 2010, 23:04 PM
mm... si... de hecho algo asi debería de ser, pero bueno... Seguire con la investigación  a ver que logro, ya entregue el trabajo, no como queria el profe, pero no me quedaba opcion... pero me parece interesante esto... hay que checar mas..
Gracias y saludos..
Por cierto, a ver si cuando tenga las operaciones los subo aqui, seri interesante jajaj ;)
Aqui tienes la información completa al respecto, operadores a nivel de bit.

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_de_bits


Saludos