Zeus писал(а): ↑22.05.2009 09:59
...если ему в помощь написать специализированную программу на C
зависит от задачи. sed текстовый редактор, если вам надо биты двигать, то проще на C.
Zeus писал(а): ↑22.05.2009 09:59
0x63B8154A==1673008458
Это long-овое значение на платформе х86. В начале идут младшие байты, в конце - старшие.
0x4A15B863
Это?
т.е. надо ещё байты переставить?
вот тут sed и нужна, потому как bc переставлять символы как раз и не умеет.
Zeus писал(а): ↑22.05.2009 09:59
А зачем sed?
потому что в тексте не только число, и ещё и не в том виде как нужно для bc. для того и sed - найти, подготовить, и запустить bc(или там прогу на C, или ещё что-то)
Zeus писал(а): ↑22.05.2009 09:59
Так я же в самом вопросе сразу и ответ написал:
это не printf, printf это форматный вывод, даёшь ей формат, она так и выводит, скажешь - 16иричное - выведет 64, скажешь простое целое - выдаст 100, хотя аргумент одинаковый... Скажешь двоичное - выдаст 1100100...
Zeus писал(а): ↑22.05.2009 10:11
echo "63B8154A"|sed -r 's/[0-9a-f]{2}/\\x&/ig; s/.*/echo -e "&"/e'
c�J
А вот этот эпизод можно поподробнее?
сначала перед каждой парой символов 0-9 или a-f я поставил \x, получилось \x63\xB8\x15\x4A,
сделал из этого echo -e "\x63\xB8\x15\x4A"
ну и запустил...
\x63 это c
а вот что такое
\xB8 - не в курсе...