Bits para Bytes?

2 respostas
S

Viva!

Tenho uma String com bits, como a seguinte:

String s = new String(“100110010001111100001010”);
se repararem temos 3 conjuntos de 8 bits, ou seja, 3 bytes.

Como faço para criar 3 bytes, após separar a String em 3?

Ou um byte[] bytes;
onde cada pos. do array tem um byte.

Sei que há o metodo s.getBytes(), mas dá o byte de cada char do string, e nao de cada grupo de 8 chars.

Obrigada a todos os que me responderem

2 Respostas

Petronio_Braga

spiningirl,

depois que você divide a String em 3. Faça assim:

Byte[] vetor = new Byte[3];

vetor[0] = Byte.valueOf(pedaco1, 2);

vetor[1] = Byte.valueOf(pedaco2, 2);

vetor[2] = Byte.valueOf(pedaco3, 2);

Agora tome cuidado com o limite do tipo Byte.

Veja o seu intervalo.

S

obrigado pela sua resposta
entretanto, estive a implementar outra alternativa:

public static void bitToChar(String s){
				
		char ret = '[code]
	public static void bitToChar(String s){
				
		char ret = '\0';		
		for( int i = 0; i< s.length(); i++){
			if( s.charAt(i) == '0'){
				ret = (char) (ret << 1); 
			}
			else{
				ret = (char) ((ret << 1) | 1);
			}
		}		

	}
'; for( int i = 0; i< s.length(); i++){ if( s.charAt(i) == '0'){ ret = (char) (ret << 1); } else{ ret = (char) ((ret << 1) | 1); } }

}
[/code]

obvio que s.length() == 8

cumprimentos

Criado 12 de novembro de 2006
Ultima resposta 13 de nov. de 2006
Respostas 2
Participantes 2