PERL: из целого (INT) получить старший младший и другие байты.

Тема в разделе "WASM.UNIX", создана пользователем apx, 11 май 2009.

  1. apx

    apx New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2008
    Сообщения:
    25
    Всем хай, может и офтопик, но:
    самый очевидный метод - сдвигами. А возможно ли вообще представить целое в перле как в Ц
    union {
    unsigned long some;
    struct {
    unsigned long some0:8;
    unsigned long some1:8;
    unsigned long some2:8;
    };
    }some;

    на перле
    my $what = 131333;
    представить ег оввиде структуры some и получить some0...
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    pack/unpack?
     
  3. apx

    apx New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2008
    Сообщения:
    25
    Может, но не хватает знания перл, что-бы применить его:dntknw:
     
  4. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Скажи perldoc perlpacktut)

    Код (Text):
    1. #!perl -W
    2. use strict;
    3. use warnings;
    4.  
    5. my $what = 0x20105; # 131333
    6. print "$what consists of bytes: " . join(';', unpack('C4', pack('L', $what))) . "\n";
    7. exit(0);
     
  5. apx

    apx New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2008
    Сообщения:
    25
    спасибо. А все ж тока та7 нет структур как в Ц там:dntknw:?