Pessoal estou meio perdido e enferrujado em java mas gostaria de saber se existe alguma maneira de eu trabalhar com bits ???
Preciso implementar um protocolo da camada de enlace de dados e seus quadros transmitidos sao compostos por sequencias de bits e esses bits são dividos em vários campos. Gostaria de poder setar esse campos com por exemplo: “01101011” nehum campo é menor que 8 bits entao eu posso usar o tipo byte mas mesmo assim ainda nao descobrir com setar da maneira que eu desejo. Segue anexo com o formato de um quadro
Nao sei se consegui me expressar muito bem, qualquer duvida perguntem.
Queria converter uma String “teste” para binário existe algo do genero ? Eu vi o “toBinaryString” da classe Integer mas retorna uma String e gostaria de armazenar em um tipo byte.
Se pergarmos o char code de cada letra e converter esse numero para binario e juntar todos teremos o que eu quero ?
[quote=laserista]Pessoal estou meio perdido e enferrujado em java mas gostaria de saber se existe alguma maneira de eu trabalhar com bits ???
[/quote]
Sim. Existem duas principais. Orientado a objetos vc tem o BitSet. Uma classe que funciona como se fosse um array de bits. A outra forma é usar os operadores & , | e ^ para fazer , na mão a boa e velha logica boolean.
Para fazer isto a seguir
010010 & 000001 = 000000
010010 | 000001 = 010011
seria
18 & 1 = 0
18 | 1 = 19
Você pode usar notação base 8 , se quiser
Como é um protocolo, vc por questões de velocidade seja melhor usar os operadores binários, mas se isso não for um problema use BitSet
[quote=laserista]Queria converter uma String “teste” para binário existe algo do genero ? Eu vi o “toBinaryString” da classe Integer mas retorna uma String e gostaria de armazenar em um tipo byte.
Se pergarmos o char code de cada letra e converter esse numero para binario e juntar todos teremos o que eu quero ?[/quote]
byte[] binario = "test".getBytes();
Só que esses bytes estão codificados no CharSet padrão no momento da chamada. Vc pode passar o CharSet no qual vc quer a codificação