Según el sistema numérico, los cálculos predeterminados se llevan a cabo sobre números decimales cuya base está estandarizada en 10. La máquina calcula toda la ejecución en la capa física en 0 y 1. Entonces surge la necesidad de un sistema numérico con base 2 conocido como sistema numérico binario. Un número binario se puede convertir a un número decimal y viceversa. En Java hay 4 tipos de números:
Tipos de números | Base |
---|---|
Binario | 2 |
Octa-Decimal | 8 |
Decimal | 10 |
hexadecimal | dieciséis |
Enfoques: en Java, hay 2 formas de convertir, ya sea utilizando métodos predefinidos o construyendo lógica de tercer grado, como se indica a continuación:
- Uso del método Integer.toBinaryString (clase contenedora de enteros)
- Usando el método de fuerza bruta (sin ningún uso de clases predefinidas)
Ejemplos:
Input. 1: 10 Output 1: The binary equivalent of 10 is : 1010 Number of 1s is : 2 Input 2: 15 Output 2: The binary equivalent of 15 is : 1111 Number of 1s is 4
Enfoque 1: uso del método toBinaryString() : representa el número que se va a convertir en binario. La clase Integer de Java proporciona algunos métodos útiles para manejar números enteros. Uno de esos métodos es Integer.toBinaryString(int x)
Sintaxis:
public static String toBinaryString(int variable_name)
Parámetros: Entero decimal a convertir.
Tipo de retorno: string que contiene la representación binaria del entero convertido o simplemente el equivalente binario del entero como un objeto de string.
Excepciones: No hay excepciones lanzadas por este método .
Parámetro: Toma un parámetro de tipo Integer (o int)
Implementación: para contar el número de 1, verifique si cada carácter de la string binaria obtenida es igual a 1 o no.
Java
// Java program to convert decimal to binary number // and counting number of 1's in it public class GFG { // Function to convert decimal to binary void convertAndCount(int num) { // Store the count of 1s currently 0 int count = 0; // Returns a String object representing // binary equivalent of passed decimal number String binary = Integer.toBinaryString(num); // Iterating over obtained string using length // function for (int i = 0; i < binary.length(); i++) // Checking 1 is present in binary if (binary.charAt(i) == '1') // Increment the count // if any char equals 1 count++; // Printing the binary equivalent System.out.println("The binary equivalent of " + num + " is : " + binary); // Printing the no of 1 in above binary number System.out.println("Number of 1s is : " + count); } // Main driver method public static void main(String[] args) { // Creating object in main GFG obj = new GFG(); // Calling the convertAndCount() method // over the integer value 18 obj.convertAndCount(18); } }
The binary equivalent of 18 is : 10010 Number of 1s is : 2
Enfoque 2: Sin usar variables predefinidas
- Dividir el número decimal por 2 que se va a convertir en binario
- Almacenar el resto
Java
// Java program to convert decimal to binary number // and counting number of 1's in it public class GFG { // Function to convert decimal to binary void convertAndCount(int num) { int temp = num; // a temporary variable to store the // value of num // to store the binary value int[] binary = new int[20]; // to store the count of 1s int count = 0; int i; // to iterate through the loop and keep a // count of no.of digits in the obtained binary for (i = 0; temp > 0; i++) { // divide the number by 2 // and store the remainder temp /= 2; binary[i] = temp % 2; // If 1 is present in binary if (binary[i] == 1) // increment the count if any digit // is equal to 1 count++; } // Printing binary of decimal number System.out.print("The binary equivalent of " + num + " is : "); // Iterating over array for (int j = i - 1; j >= 0; j--) // Printing obtained array in reverse order System.out.print(binary[j]); // Printing number of 1's System.out.println("\nNumber of 1s is : " + count); } // Main driver method public static void main(String[] args) { // Creating class GFG object in main GFG obj = new GFG(); obj.convertAndCount(18); // calling convertAndCount() method on decimal // over the value 18 } }
The binary equivalent of 18 is : 01001 Number of 1s is : 2
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA