Ir ao conteúdo
  • Cadastre-se
gabriel arquelau

Vetor de números hexadecimais

Recommended Posts

Olá amigos, 

 

Eu estou desenvolvendo um programa em C, mas fique empacado nessa parte.

 

Eu tenho um vetor com quatro elementos que são números representados em forma hexadecimal. 

O que eu preciso fazer é "concatenar" esses quatro elementos (creio q essa nao seja a palavra certa, mas nao encontrei outra melhor)

 

Por exemplo:

 

            int v[4]={0xA, 0xBB, 0x4B, 0x18};

 

Eu preciso de um resultado que seja semelhante a:

 

          int resultado=0xABB4B18;

 

Infelizmente, como disse, eu estou completamente empacado nessa parte. Até tentei desenvolver algum trecho de código, mas não saiu nada.

também não encontrei nada semelhante a isso no fórum ou no Google.

 

Se alguém souber e puder me ajudar de qualquer maneira, ficaria muito grato.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode efetuar operações bit-a-bit

    unsigned int v[4] = {0xA, 0xBB, 0x4B, 0x18};    unsigned int resultado = v[0];    int i;    for(i = 1; i < 4; i++){        resultado <<= 8;        resultado |= v[i];    }        printf("%x\n", resultado);
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos,

Eu estou desenvolvendo um programa em C, mas fique empacado nessa parte.

Eu tenho um vetor com quatro elementos que são números representados em forma hexadecimal.

O que eu preciso fazer é "concatenar" esses quatro elementos (creio q essa nao seja a palavra certa, mas nao encontrei outra melhor)

Por exemplo:

int v[4]={0xA, 0xBB, 0x4B, 0x18};

Eu preciso de um resultado que seja semelhante a:

int resultado=0xABB4B18;

Infelizmente, como disse, eu estou completamente empacado nessa parte. Até tentei desenvolver algum trecho de código, mas não saiu nada.

também não encontrei nada semelhante a isso no fórum ou no Google.

Se alguém souber e puder me ajudar de qualquer maneira, ficaria muito grato.

É possível fazer isso com ponteiros;

Converta o ponteiro de um int para char índex até 3 atribuído sequencialmente inverso ao vetor de int que contem as 4 numerações hex.

Não ficou muito elegante, mas interessante ficou.

 

//program C - Simple Code <Clube do Hardware>//Author: Mauro Britivaldo////Directives#include<stdio.h>//Function Prototype Declarationint toInt( int[4] );//Prime Function Languageint main( void ){   int v[4] = {0xA, 0xBB, 0x4B, 0x18};   //...   int hex = toInt( v );   printf( "View hex: 0x%X\n",hex );return 0x0;}//Function Prototype Definitionint toInt( int vec[4] ){   return *((int*)(char[4]){ vec[3],vec[2],vec[1],vec[0] });}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×