Hola a todos,
En esta nueva entrada veremos cómo sacar el número binario dado un número entero.
En esta nueva entrada veremos cómo sacar el número binario dado un número entero.
Básicamente un numero binario es una combinación de ceros ( 0 ) y unos ( 1
), que representan mediante manera exponencial números enteros. Estos números binarios
salen de una operación básica como lo es la división e invirtiendo en
resultado final, por lo cual dado un número entero cualquiera dividimos
sucesivamente hasta llegar a u número final 0 o 1. Todos estos necesitamos usar
obtener dos resultados:
- El numero entero siguiente, que se da por medio de divisiones sucesivas.
- El residuo de la división por dos del número entero.
// public class Binario { //para esta clase tenemos que importar la libreria para listas //que es import java.util.ArrayList; public static void main(String[] args) { //Numero Entero que convertimos en binario int numero=128; //String en el cual almacenamos el valor binario resultante String binario=""; //llamamos al metodo que convirte el numero en binario binario=convertirABinario(numero); //mostramos por consola el numero Binario resultante System.out.println("El numero Binario es " + binario); } /** * Metodo que convierte un numero entero en binario * @param numero Numero entero correspondiente * @return cadena de texto con el numero binario resultante */ public static String convertirABinario(int numero) { //lista donde almacenamos los valores individuales ArrayList binarios = new ArrayList(); //variable donde almacenamos el resultado de la division int aux=numero; //hacemos un ciclo while para sacar todos los valores binarios while(true) { //almacenamos el resultado de la operacion sea 1 o 0 binarios.add(aux%2); //pasamos el sigiente numero aux/=2; if(aux<2) { //una vez obtenido todos los valores salimos del ciclo binarios.add(aux); break; } } //llamamos al metodo que nos invierta la lista y obtenmos el resultado final return invertirLista(binarios); } /** * Metodo que invierte la lista para obtener el binario final * @param lista donde se encuentra los resultados binarios * @return con el numero binario final */ public static String invertirLista(ArrayList lista) { String invertido=""; for(int i=lista.size()-1;i>=0;i--) { invertido+=lista.get(i); } return invertido; } }
yo quiero que alguien me diga como poder sacar el resultado de cuantos unos y cuantos ceros utilice aqui.
ResponderEliminarimport java.util.Scanner;
public class binarios {
public static void main(String[] args) {
Scanner leer= new Scanner(System.in);
int z,u;
for(z=1;z<=10;z++){
System.out.println("ingresa numero"+z);
u=leer.nextInt();
if(u==0||u==1)
System.out.println("numero binario");
else{
System.out.println("error");
u--;
if(u==0);
}
}
Hola, serian varias cosas:
Eliminar1. para saber la cantidad de 1 y 0 que ingresa el usuario lo que podrías hacer es separar tu if en dos uno para los 1 y otro para los 0, además crear 2 contadores y cada vez que ingrese a tu if lo incrementas en 1. por ejemplo:
int contador0=0; //Contador para los 0
int contador1=0; //Contador para los 1
…..
if(u==0)
{
System.out.println("numero binario");
contador0 ++ ;
}
if(u==1)
{
System.out.println("numero binario");
contador1 ++ ;
}
2. para hacer evidente el numero de binarios ingresados después de finalizar el for lo que podrías hacer seria algo como :
System.out.println("La cantidad de 0 ingresados es " + contador0);
System.out.println("La cantidad de 1 ingresados es " + contador1);
3. tienes que tener en cuenta si solo vas a aceptar numero 1 y 0 o números binarios, ya que estos están compuestos por varios 1 y 0, por lo cual en tu caso en numero como 101010 que es binario pero según tu código no lo aceptaría, deberías mirar esa parte.
Espero te sea de ayuda, cualquier cosa quedamos atento. :)