none
Converter de Hexa para decimal RRS feed

  • Pergunta

  • Pessoal,

    estou utilizando MSVisual C++ 2008...

     

    em um projeto do tipo DLL...

    e preciso converter um valor DWORD em LPSTR...

    bom, se eu converto da seguinte maneira:

     

    LPSTR valor;

    DWORD valor2 = 16;

    valor = (LPSTR)valor2;

    ...

    a variável valor fica "0x00000010"(o que significa 16 em hexadecimal)

     

     

    então, se alguém souber como se converte DWORD para LPSTR de maneira mais elegante, ou se sabe converter de Hex para Dec, seria de muita ajuda.

     

    grato.

    • Movido AndreAlvesLima sábado, 25 de setembro de 2010 00:07 (De:.NET Development - Geral)
    quarta-feira, 15 de setembro de 2010 18:23

Todas as Respostas

  •  

    A forma elegante de fazer é essa mesma que você utilizou, um cast entre tipos.

    Agora, você qr montar o algoritmo p/ conversão?

    Primeiro transformamos cada dígito alfabético em número => A-10 B-11 C-12 D-13 E-14 -F15
    Agora faça:

    n * 16 ^ casaDecimal, sendo que para o dígito mais a direita a casa decimal é 0.

    Exemplo:

    Hexa: 7C1
    Letras transformada: 7 12 1
    (7 * 16^2) +  (12 * 16^1) + (1 * 16^0)
    (7 * 256) + (12 * 16) + (1)
    1792 + 192 + 1
    1985

    Abs

    quarta-feira, 15 de setembro de 2010 22:37
  • Prezado,

    Estou migrando seu post para o fórum de C++.

    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.

    Obrigado.


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sábado, 25 de setembro de 2010 00:06
  • http://msdn.microsoft.com/en-us/library/ybk95axf(VS.71).aspx

     

    TCHAR buffer[128];

    sprintf(buffer, "%d", valor2);

    valor = buffer;


    Fabio Galuppo
    sábado, 25 de setembro de 2010 00:26