tobinarystring long example data convert java string int bit bits

long - Cómo convertir cadenas en bits y luego en int array-java



primitive data types java (7)

Bueno, tal vez puede omitir la conversión String to bits y convertir directamente a una matriz de ints (si lo que quiere es el valor UNICODE de cada carácter), usando s.toCharArray() donde s es una variable String .

¿Cómo convertir una cadena en bits (no bytes) o una matriz de bits en Java (haré algunas operaciones más adelante) y cómo convertir en una matriz de entradas (cada 32 bits se convierten en int y luego lo colocan en la matriz? Nunca hice este tipo de conversión en Java.

String->array of bits->(some operations I''ll handle them)->array of ints


Esto convertirá "abc" en byte y luego el código imprimirá "abc" en el código ASCII respectivo (es decir, 97 98 99).

byte a[]=new byte[160]; String s="abc"; a=s.getBytes(); for(int i=0;i<s.length();i++) { System.out.print(a[i]+" "); }


Puede ser así (no tengo compilador en mi computadora actual y no pruebo si funciona, pero puede ayudarte un poco):

String st="this is a string"; byte[] bytes=st.getBytes(); List<Integer> ints=new ArrayList<Integer>(); ints.addAll(bytes);

Si el compilador falla en

ints.addAll(bytes);

puedes reemplazarlo con

for (int i=0;i<bytes.length();i++){ ints.add(bytes[i]); }

y si quieres obtener exactamente una matriz:

ints.toArray();


Tenga en cuenta que la cadena es una secuencia de caracteres, y en Java cada tipo de datos es un único carácter Unicode de 16 bits. Tiene un valor mínimo de ''/ u0000'' (o 0) y un valor máximo de ''/ uffff'' (o 65,535 inclusive). Para obtener un valor entero de char, haz esto:

String str="test"; String tmp=""; int result[]=new int[str.length()/2+str.length()%2]; int count=0; for(char c:str.toCharArray()) { tmp+=Integer.toBinaryString((int)c); if(tmp.length()==14) { result[count++]=Integer.valueOf(tmp,2); //System.out.println(tmp+":"+result[count-1]); tmp=""; } } for(int i:result) { System.out.print(i+" "); }


Usted está buscando esto :

string.getBytes();

No lista, es una matriz pero puede usarla más adelante, incluso para convertirla en enteros.


ByteBuffer bytes = ByteBuffer.wrap(string.getBytes(charset)); // you must specify a charset IntBuffer ints = bytes.asIntBuffer(); int numInts = ints.remaining(); int[] result = new int[numInts]; ints.get(result);


ESTA ES LA RESPUESTA

String s = "foo"; byte[] bytes = s.getBytes(); StringBuilder binary = new StringBuilder(); for (byte b : bytes) { int val = b; for (int i = 0; i < 8; i++) { binary.append((val & 128) == 0 ? 0 : 1); val <<= 1; } // binary.append('' ''); } System.out.println("''" + s + "'' to binary: " + binary);