Tengo un número y quiero imprimirlo en binario. No quiero hacerlo escribiendo un algoritmo, ¿hay alguna función incorporada para eso en Java?
277
Suponiendo que quiere decir "incorporado":
int x = 100;
System.out.println(Integer.toBinaryString(x));
Ver documentación entera .
( Long
tiene un método similar, BigInteger
tiene un método de instancia donde puede especificar la raíz).
Aquí no es necesario depender solo del formato binario o de otro tipo ... hay disponible una función integrada flexible que imprime el formato que desee en su programa. Integer.toString (int, representación);
fuente
toBinaryString
usa la salida complementaria de dos,toString
convierte el número en la base especificada y pone un signo negativo al frente, entoncestoString(-8, 2) == "-1000"
fuente
Necesitaba algo para imprimir bien las cosas y separar los bits cada n bits. En otras palabras, muestra los ceros a la izquierda y muestra algo como esto:
Entonces esto es lo que escribí:
Invocarlo así:
fuente
result.replace(result.length() - 1, result.length(), "");
se requiere? Como estamos pasando,int
que ya es de 32 bits. ¿Qué estamos reemplazando en la segunda última línea?String
clasetrim
para lograr el mismo efecto.Vieja escuela:
fuente
System.out.println
y estoy&
integrado;)Salida:
fuente
echa un vistazo a esta lógica puede convertir un número a cualquier base
O
fuente
Esta es la forma más sencilla de imprimir la representación binaria interna de un entero. Por ejemplo : si tomamos n como 17, la salida será: 0000 0000 0000 0000 0000 0000 0001 0001
fuente
Simplemente inténtalo. Si el alcance solo imprime los valores binarios del valor entero dado. Puede ser positivo o negativo.
entrada
5 5
Salida
101
fuente
Solución con máscara de pantalla de 32 bits,
fuente
Solución simple y bastante fácil.
fuente
Ya hay buenas respuestas publicadas aquí para esta pregunta. Pero, esta es la forma en que lo intenté yo mismo (y podría ser la lógica más fácil basada en → módulo / dividir / agregar ):
fuente
La pregunta es complicada en Java (y probablemente también en otro idioma).
Un entero es un tipo de datos con signo de 32 bits , pero Integer.toBinaryString () devuelve una representación de cadena del argumento entero como un entero sin signo en la base 2.
Entonces, Integer.parseInt (Integer.toBinaryString (X), 2) puede generar una excepción (con y sin signo).
La forma segura es usar Integer.toString (X, 2); esto generará algo menos elegante:
-11110100110
¡¡¡Pero funciona!!!
fuente
Creo que es el algoritmo más simple hasta ahora (para aquellos que no quieren usar funciones integradas):
Ejemplo:
convertNumber (1) -> "0b1"
convertNumber (5) -> "0b101"
convertNumber (117) -> "0b1110101"
Cómo funciona: while-loop mueve un número a la derecha (reemplazando el último bit por el penúltimo, etc.), obtiene el valor del último bit y lo coloca en StringBuilder, se repite hasta que no queden bits (eso es cuando a = 0).
fuente
fuente
Intenta de esta manera:
}
10010100
fuente
Representación binaria de int x dada con ceros rellenos a la izquierda:
fuente
Ingrese cualquier número decimal como entrada. Después de eso, operamos como módulo y división para convertir la entrada dada en un número binario. Aquí está el código fuente del programa Java para convertir valores enteros en binario y el número de bits de este binario para su número decimal. El programa Java se compiló y ejecutó con éxito en un sistema Windows. La salida del programa también se muestra a continuación.
fuente
Como no se acepta ninguna respuesta, tal vez su pregunta fue sobre cómo almacenar un número entero en un archivo binario. java.io.DataOutputStream puede ser lo que estás buscando: https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html
fuente
¡Puede usar la máscara de bits (1 << k) y hacer la operación AND con el número! 1 << k tiene un bit en la posición k!
fuente
Funciona con valores con y sin signo, utiliza una potente manipulación de bits y genera los primeros ceros a la izquierda.
fuente