Conversão de váriavel binária em hexadecimal

Olá

Eu estou escrevendo uma classe que utiliza o Websphere MQ. Em um dos métodos, eu obtenho como resultado MQID da mensagem. Porém o MQID é retornado em uma variável em formato binário e eu preciso convertê-lo em HEXADECIMAL.

Aguém sabe como eu posso efetuar a conversão desta varável binária em hexadecimal ?

Obrigado

Marcos

Quando não sei invento um pouco :wink:

Cria um array ou vector … com a seguinte info:

Binario Hexadecimal

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Agora:
O valor que vem em binario…passa-o para string!
Parte-o de 4 em 4 do fim para tras …

1 1111 1101 0011

e vai encaixando noutro vector por exemplo.
Agora percorre este vector e compara com os existentes…

Esta é uma forma de complexidade elevada … mas que funciona!

Outra forma:

1111 1111 0110

por exemplo!!!

Começa no fim …

de 4 em 4 (ciclo) … percorre a string ao contrario…

a quarta posicao é igual a 1;
a terceira posicao é igual a 2;
a segunda posicao é igual a 4;
a primeira posicao é igual a 8;

vais somando…

e tens um array ou vector …

com mapeamentos: A -> 10
B -> …

Amigo, talves um pouco de Eletrônica digital Basico
ajude você a fazer classes que manipulem números
binários etc…

Algums termos que vou utilizar:
b10 -> base decimal
b16 -> base hexadecimal
b8-> base octal
b2 -> base binaria

Para converter binario em hexadecimal você pode separar a palavra binaria em grupos de 4 bits, exemplo,
se voce tiver 11011011 pode separar como segue
1101 1011 e ver o valor de cada grupo de bits,

1101 b2 = 13 b10 = D b16
1011 b2 = 11 b10 = B b16

no final você concatena os valores em hexa, resultando
em DB, logo 1101 1011 b2 = DB b16

se o numero binario não tiver uma quantidade de bits multipla de 4 voce separa da direita pra esquerda,
exemplo, 1101110 -> 110|1110

depois só pegar os valores e concatenar
110 = 6 b10
1110 = 14 b10

resultando em 6E na base 16.

Espero ter ajudado, entendendo como funciona voce tem condições de desenvolver uma classe para fazer essa conversão.

/* Objetivo: Transforma uma numero decimal em Hexadecimal
public String Hexadecimal (int senha){
return Integer.toHexString(senha);
}

faltou o contrário

/* Objetivo: Transforma uma numero Hexadecimal em decimal
public int Hexadecimal (String senha){
return Integer.parseInt(senha,16);
}