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

3

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

03 01 9d f0 b4 05 01 67 40 20 00 6b ad
    
por stanigator 08.07.2011 / 00:26

3 respostas

1

Existem vários conversores on-line, como este: link

    
por 08.07.2011 / 00:37
3

.js script 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%
    
por 08.07.2011 / 00:35
0

Se tudo que você quer é uma string de hex para uma string de decimal, então este minúsculo programa perl fará isso:

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

input.hex:

68dcdec4e2c8eae8d2c8e2dedcd6e04d2042fedae52ceac04 ccedaecd8c042ccd8c046cedad0e8dac8eac8c048e0dac044a a82889046c0d2c8d8daccdecacc5042bedae4e04ee2dcd046c

./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 isso!

    
por 23.07.2011 / 23:59