Pessoal preciso implementar uma classe que receba 2 inteiros como argumentos, de forma que formem um numero de 2 digitos (por exemplo newdig(1,2) para o numero 12).
Essa classe devera transformar o numero em byte, mas nao apenas pegar o numero 12 e transforma-lo em byte como 12 = 00001100, mas quebrar o numero em byte em 2 partes de 4 digitos e cada uma deve ser um algoritimo, por exemplo: 1 = 0001 e 2 = 0010 de forma que byte seja igual a 00010010 = 17.
Minhas duvidas sao:
1- Com um numero int de 2 digitos qq, como posso pegar apenas a dezena e a unidade?
2- transformar um int em byte é facil, mas acredito que o seguinte codigo nao vai funcionar:
int numInt = 1;
byte numByte = (byte)numInt;
numByte vai ser igual a 00000001 certo? Mas eu preciso de apenas 4 digitos.
3- caso eu consiga retornar apenas 4 digitos com o byte, como concatena-los em 1 numero byte novamente?
Muito Obrigado
Int -> byte
V
2 Respostas
B
- Para pegar apenas a dezena e a unidade, utilize o método braçal: dividir por 10 para pegar a dezena e pegar o módulo (resto) para a unidade.
2) O tipo primitivo byte nada mais é do que um inteiro de 8 bits, ele não retorna a coisa na forma binária. Para isso você pode usar o método toBinaryString da classe Integer. Aí ele vai colocar só os bytes necessários (não os 8) e você pode completar o que faltar com 0s através de manipulação de String mesmo.
H
Para montar:
byte newdig(int a, int b)
{
return (byte)((a >> 4) | b);
}
Para desmontar:
byte dezena = (byte)(a >> 4);
byte unidade = (byte)(a & 0x0f);
Criado 21 de março de 2003
Ultima resposta 21 de mar. de 2003
Respostas 2
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo