Convertendo uma série de bytes de números hexadecimais em números decimais

3

Existe um aplicativo / script por aí que pode converter uma série de bytes de hex para dec (se não, existe uma maneira fácil de conseguir isso no prompt de comando em poucas linhas)?

03 01 9d f0 b4 05 01 67 40 20 00 6b ad
stanigator
fonte

Respostas:

1

Existem muitos conversores on-line, como este: http://home2.paulschou.net/tools/xlate/

Andrew Lambert
fonte
-1 por apenas postar um link. É um local de coleta de conhecimento. O que acontece se o link acabar?
Nifle 7/07/11
1
@ Nifle Use um dos milhares de outros por aí? O OP não pediu uma lição sobre matemática hexadecimal, apenas uma conversão única.
Andrew Lambert
@Amazed: Eu acho que Nifle significava outras semelhantes ao link que você tenha incluído, mas estes milhares de outros seriam suficientes (não sabia as palavras-chave para procurar-los adequadamente originalmente)
stanigator
3

.jsscript para cscript:

num = [];
for (i = 0; i < WScript.Arguments.Length; i++) {
    arg = WScript.Arguments(i);
    num.push(parseInt(arg, 16));
}
WScript.Echo(num.join(" "));

Script em lote para cmd.exe:

@echo off & setlocal
set /a out=0x%1
:loop
    if "%~1"=="" goto :end
    set /a num=0x%1
    set out=%out% %num%
    shift
    goto :loop
:end
    echo.%out%
gravidade
fonte
0

Se tudo o que você deseja é uma sequência hexadecimal para uma sequência decimal, esse pequeno programa perl fará isso:

#!/usr/bin/perl
while(<>){s/(.\s*.)\s*/hex($1).' '/eg;print;}

input.hex:

68edcdec4e2c8eae8d2c8e2dedcd6e04d2042fedae52ceac04 ccedaecd8c042ccd8c046cedad0e8dac8eac8c048e0dac044a a82889046c0d2c8d8daccdecacc5046beda2

./hex2dec.pl < input.hex

Ele perdoa o espaço em branco na fonte e procura apenas pares consecutivos de dígitos hexadecimais.

Basta modificar com sprintf, push, split etc para controlar o formato de saída

Se você instalar o perl no windows, isso funcionará na linha de comando:

perl -e "while(<>){s/(.\s*.)\s*/hex($1).' '/eg;print;}" < input.hex

Perl é incrível. Ninguém deveria ficar sem ele!

Andy Lee Robinson
fonte