Преобразование серии байтов из шестнадцатеричных чисел в десятичные числа

1947
stanigator

Существует ли приложение / сценарий, который может преобразовать серию байтов из шестнадцатеричного значения в десятичное (если нет, есть ли простой способ добиться этого в командной строке в несколько строк)?

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

3 ответа на вопрос

3
grawity

.jsскрипт для cscript:

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

Пакетный скрипт для 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% 
1
Andrew Lambert

Есть множество онлайн-конвертеров, таких как этот: http://home2.paulschou.net/tools/xlate/

-1 только за размещение ссылки. Это место для сбора знаний, что произойдет, если ссылка умрет? Nifle 12 лет назад 0
@Nifle Использовать один из [тысяч других] (http://www.google.com/search?q=online+hex+to+decimal+calculator) там? ФП не попросил урока по шестнадцатеричной математике, только одноразовое обращение. Andrew Lambert 12 лет назад 1
@Amazed: Я думаю, что Nifle имел в виду те, которые похожи на ссылку, которую вы включили, но [эти тысячи других] (http://www.google.com/search?q=online+hex+to+decimal+calculator#sclient = пси & гл = еп & безопасно = выкл и источник = л & д = шестнадцатеричное + переводчик и АТС = 1 & OQ = шестнадцатеричное + переводчик & водн = F & AQI = g1g-M1G-ms1g-м1 & акл = F & gs_sm = е & gs_upl = 9172l14565l1l28l18l2l6l6l0l360l2291l3.6.2.2l13 & БАВ = on.2, or.r_gc.r_pw. & FP = c306e119a7d85f91 & biw = 1920 & bih = 989) будет достаточно (я не знал ключевых слов для их первоначального поиска) stanigator 12 лет назад 0
0
Andy Lee Robinson

Если все, что вам нужно, это строка от шестнадцатеричной до десятичной строки, то эта крошечная Perl-программа сделает это:

#!/usr/bin/perl while(<>) 

input.hex:

68edcdec4e2c8eae8d2c8e2dedcd6e04d2042fedae52ceac04 ccedaecd8c042ccd8c046cedad0e8dac8eac8c048e0dac044a a82889046c0d2c8d8daccdecacd46ed4ccc4

./hex2dec.pl < input.hex 

Он прощает про пробелы в источнике и ищет только пары последовательных шестнадцатеричных цифр.

Просто измените с помощью sprintf, push, split и т. Д. Для управления форматом вывода

Если вы установите Perl на Windows, то это будет работать в командной строке:

perl -e "while(<>)" < input.hex 

Perl потрясающий Никто не должен быть без этого!

Похожие вопросы