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.
Desculpe a minha ignorância mas estas setando em Hexa ? Nao entendi :oops:
E outra pergunta? como ficaria um endereço tipo 127.0.0.1 em 8 bits ?? ba q merda to viajando muito
T
thingol
127.0.0.1 é um endereço de 32 bits. Em bytes, ele fica:
0x7F, 0x00, 0x00, 0x01.
L
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 ?
S
sergiotaborda
laserista:
Pessoal estou meio perdido e enferrujado em java mas gostaria de saber se existe alguma maneira de eu trabalhar com bits ???
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
S
sergiotaborda
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 ?
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