|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry E. Oboukhov 2:5020/830.100 12 Mar 2008 17:08:30 To : alexander lunyov Subject : как собрать байты в число? -------------------------------------------------------------------------------- >> $str="070a12110f1002"; >> $str=~s/(..)/sprintf "%02d", hex "0x$1"/eg; al> спасибо, так всё получается. покрутив туда и сюда нашел ошибку и пришел al> к такому варианту: al> map sprintf("%02d",hex($_))." ",unpack "A2"x7,$fields[0]; по моему unpack в данной задаче сильно лишний :) впрочем конечно кому как нравится ;) al> а глюк был в том что пытаясь объять необъятное, распаковку и другие al> преобразования делал прямо в print'е, и в конце по привычке ставил "\n" al> print map hex($_),unpack("A2"x7,$fields[0]),"\n"; al> и к тому что вылезало из unpack-а прицеплялось "\n" - оно давало ошибку al> и последнюю цифру "0", а так как я не догадался разделить выходящие al> цифры пробелом и паддить их нулями, то и видел я не 02, а 20. в общем, al> надо быть внимательнее и отделять мухи от котлетов. ... В Hью-Йорке мне делать нечего, хотя в качестве солдата может и побываю :) --- Mutt/1.5.17+20080114 (2008-01-14) * Origin: Debian GNU Linux (2:5020/830.100) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/44613a5514e5.html, оценка из 5, голосов 10
|