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
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
Respostas:
Existem muitos conversores on-line, como este: http://home2.paulschou.net/tools/xlate/
.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%
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!