texto - integer.parseint java netbeans
¿Cómo convertir una int a una representación de cadena binaria en Java? (15)
¿Cuál sería la mejor manera (idealmente, la más simple) para convertir una int a una representación de cadena binaria en Java?
Por ejemplo, supongamos que int es 156. La representación de cadena binaria de esto sería "10011100".
El enfoque más simple es verificar si el número es impar o no. Si lo es, por definición, su número binario más a la derecha será "1" (2 ^ 0). Después de que hayamos determinado esto, cambiamos el número a la derecha y verificamos el mismo valor usando la recursión.
@Test
public void shouldPrintBinary() {
StringBuilder sb = new StringBuilder();
convert(1234, sb);
}
private void convert(int n, StringBuilder sb) {
if (n > 0) {
sb.append(n % 2);
convert(n >> 1, sb);
} else {
System.out.println(sb.reverse().toString());
}
}
Esto debería ser bastante simple con algo como esto:
public static String toBinary(int number){
StringBuilder sb = new StringBuilder();
if(number == 0)
return "0";
while(number>=1){
sb.append(number%2);
number = number / 2;
}
return sb.reverse().toString();
}
Esto es algo que escribí hace unos minutos. ¡Espero eso ayude!
public class Main {
public static void main(String[] args) {
ArrayList<Integer> powers = new ArrayList<Integer>();
ArrayList<Integer> binaryStore = new ArrayList<Integer>();
powers.add(128);
powers.add(64);
powers.add(32);
powers.add(16);
powers.add(8);
powers.add(4);
powers.add(2);
powers.add(1);
Scanner sc = new Scanner(System.in);
System.out.println("Welcome to Paden9000 binary converter. Please enter an integer you wish to convert: ");
int input = sc.nextInt();
int printableInput = input;
for (int i : powers) {
if (input < i) {
binaryStore.add(0);
} else {
input = input - i;
binaryStore.add(1);
}
}
String newString= binaryStore.toString();
String finalOutput = newString.replace("[", "")
.replace(" ", "")
.replace("]", "")
.replace(",", "");
System.out.println("Integer value: " + printableInput + "/nBinary value: " + finalOutput);
sc.close();
}
}
Esto se puede expresar en pseudocódigo como:
while(n > 0):
remainder = n%2;
n = n/2;
Insert remainder to front of a list or push onto a stack
Print list or stack
Realmente debería usar Integer.toBinaryString() (como se muestra arriba), pero si por alguna razón desea la suya:
// Like Integer.toBinaryString, but always returns 32 chars
public static String asBitString(int value) {
final char[] buf = new char[32];
for (int i = 31; i >= 0; i--) {
buf[31 - i] = ((1 << i) & value) == 0 ? ''0'' : ''1'';
}
return new String(buf);
}
También está el método java.lang.Integer.toString (int i, int base) , que sería más apropiado si algún día su código manejara bases distintas de 2 (binarias).
También puede usar while loop para convertir un int a binario. Me gusta esto,
import java.util.Scanner;
public class IntegerToBinary
{
public static void main(String[] args)
{
int num;
String str = "";
Scanner sc = new Scanner(System.in);
System.out.print("Please enter the a number : ");
num = sc.nextInt();
while(num > 0)
{
int y = num % 2;
str = y + str;
num = num / 2;
}
System.out.println("The binary conversion is : " + str);
sc.close();
}
}
Fuente y referencia: convierte int en binario en el ejemplo de java .
Una forma más: usando java.lang.Integer puede obtener una representación de cadena del primer argumento i
en la radix (Octal - 8, Hex - 16, Binary - 2)
especificada por el segundo argumento.
Integer.toString(i, radix)
Ejemplo_
private void getStrtingRadix() {
// TODO Auto-generated method stub
/* returns the string representation of the
unsigned integer in concern radix*/
System.out.println("Binary eqivalent of 100 = " + Integer.toString(100, 2));
System.out.println("Octal eqivalent of 100 = " + Integer.toString(100, 8));
System.out.println("Decimal eqivalent of 100 = " + Integer.toString(100, 10));
System.out.println("Hexadecimal eqivalent of 100 = " + Integer.toString(100, 16));
}
Salida_
Binary eqivalent of 100 = 1100100
Octal eqivalent of 100 = 144
Decimal eqivalent of 100 = 100
Hexadecimal eqivalent of 100 = 64
Usando la función incorporada:
String binaryNum = Integer.toBinaryString(int num);
Si no desea usar la función incorporada para convertir int a binario, también puede hacer esto:
import java.util.*;
public class IntToBinary {
public static void main(String[] args) {
Scanner d = new Scanner(System.in);
int n;
n = d.nextInt();
StringBuilder sb = new StringBuilder();
while(n > 0)
{
int r = n%2;
sb.append(r);
n = n/2;
}
System.out.println(sb.reverse());
}
}
Usando la función incorporada:
String binaryNum = Integer.toBinaryString(int num);
Si no desea usar la función incorporada para convertir int a binario, también puede hacer esto:
import java.util.*;
public class IntToBinary {
public static void main(String[] args) {
Scanner d = new Scanner(System.in);
int n;
n = d.nextInt();
StringBuilder sb = new StringBuilder();
while(n > 0){
int r = n%2;
sb.append(r);
n = n/2;
}
System.out.println(sb.reverse());
}
}
aquí están mis métodos, es un poco convincente que el número de bytes fijos
private void printByte(int value) {
String currentBinary = Integer.toBinaryString(256 + value);
System.out.println(currentBinary.substring(currentBinary.length() - 8));
}
public int binaryToInteger(String binary) {
char[] numbers = binary.toCharArray();
int result = 0;
for(int i=numbers.length - 1; i>=0; i--)
if(numbers[i]==''1'')
result += Math.pow(2, (numbers.length-i - 1));
return result;
}
Conversión de entero a binario:
import java.util.Scanner;
public class IntegerToBinary {
public static void main(String[] args) {
Scanner input = new Scanner( System.in );
System.out.println("Enter Integer: ");
String integerString =input.nextLine();
System.out.println("Binary Number: "+Integer.toBinaryString(Integer.parseInt(integerString)));
}
}
Salida:
Ingrese entero:
10
Número binario: 1010
Integer.toBinaryString(int i)
public class Main {
public static String toBinary(int n, int l ) throws Exception {
double pow = Math.pow(2, l);
StringBuilder binary = new StringBuilder();
if ( pow < n ) {
throw new Exception("The length must be big from number ");
}
int shift = l- 1;
for (; shift >= 0 ; shift--) {
int bit = (n >> shift) & 1;
if (bit == 1) {
binary.append("1");
} else {
binary.append("0");
}
}
return binary.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(" binary = " + toBinary(7, 4));
System.out.println(" binary = " + Integer.toString(7,2));
}
}
public static string intToBinary(int n)
{
string s = "";
while (n > 0)
{
s = ( (n % 2 ) == 0 ? "0" : "1") +s;
n = n / 2;
}
return s;
}