Ir ao conteúdo
  • Cadastre-se

Problema com Hexadecimal


Adenes

Posts recomendados

Pessoal estou fazendo uma aplicação em C (usando o Builder 6) e preciso de uma ajuda.

O usuário irá entrar com um valor Hexadecimal (endereço de um dispositivo) num campo (um Edit). Apesar desse endereço ser em Hexadecimal para o edito ele é uma string pura, texto.

Preciso manipular este valor internamente no programa em Hexadecimal mesmo, como faço?

Posteriormente preciso exibir um valor em Hexadecimal em outro edit.

Agradeço desde já a ajuda.

Link para o comentário
Compartilhar em outros sites

Adenes,

Pessoal estou fazendo uma aplicação em C (usando o Builder 6) e preciso de uma ajuda.

O usuário irá entrar com um valor Hexadecimal (endereço de um dispositivo) num campo (um Edit). Apesar desse endereço ser em Hexadecimal para o edito ele é uma string pura, texto.

Preciso manipular este valor internamente no programa em Hexadecimal mesmo, como faço?

Posteriormente preciso exibir um valor em Hexadecimal em outro edit.

Agradeço desde já a ajuda.

É o C++ Builder, né?

Dê uma olhada nas funções: StrToIntDef, IntToHex e IntToStr

http://docwiki.embarcadero.com/Libraries/XE3/en/System.SysUtils.StrToIntDef

NW

Link para o comentário
Compartilhar em outros sites

Cara, valeu pela disposição em ajudar.

Andei olhando as funções que você indicou.

Na verdade elas não fazem exatamente o que estou precisando.

Por exemplo, ao digitar um 'A' no Edit ela irá me retorna '41'.

O que preciso é digitar um 'A' e ter um 'A' em hexadecimal.

Usando as formatações e scanf seria feito facilmente com o %x, porém como estou no Builder C++ não sei como fazer...

Link para o comentário
Compartilhar em outros sites

Adenes,

Por exemplo, ao digitar um 'A' no Edit ela irá me retorna '41'.

O que preciso é digitar um 'A' e ter um 'A' em hexadecimal.

Usando as formatações e scanf seria feito facilmente com o %x, porém como estou no Builder C++ não sei como fazer...

Por exemplo, ao digitar o valor '8ED47' no Edit ele vai retornar uma string (o próprio '8ED47'). A partir dessa string, você faz as conversões necessárias (e faz os cálculos). Ao final, você converte o valor novamente para string (IntToHex) para atribuir ao Edit. Pelo menos era assim que eu fazia em Delphi.

Se você deseja exibir o valor em hexa em algum controle, use a função. Veja o protótipo da função:

extern DELPHI_PACKAGE System::[B]UnicodeString[/B] __fastcall IntToHex(int Value, int Digits)/* overload */;

Então, ali quando você fala em digitar um 'A' e ter um 'A' em hexa, o que você vai ter é uma string com um 'A'.

Não vejo muita diferença entre o uso do scanf() e o uso dessas funções para conversão entre bases. No final das contas, você vai estar trabalhando com decimais.

NW

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...