sarinha
#1
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
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.
sarinha
#3
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);
}
}
}
[/code]';
for( int i = 0; i< s.length(); i++){
if( s.charAt(i) == '0'){
ret = (char) (ret << 1);
}
else{
ret = (char) ((ret << 1) | 1);
}
}
}
obvio que s.length() == 8
cumprimentos