WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:perlの書き方

0:[投稿] しろ [2006/11/25 14:09 ] [環境:わからない UNIX]

sub decode {
   my($val) = @_;
   $a=int($val/(2**40));
   $b=(int($val/1048576))%1048576;
   $c=(($val-($a*1048576+$b)*1048576))%1048576;

   return ($a,$b,$c);
}
32ビット以上の整数$val下位から20ビット、20ビット、10ビットを別な変数$c,$b,$aに取り出す
できるだけ高速なdecode関数を作るとして、もっとよい書き方はあるんでしょうか?


1:[回答] 神崎 [2006/11/26 04:33 ]

my ($c,$b,$a)=unpack("B20B20B10", $val);

間違ってたらすみませんm(_ _)m
バイナリデータの扱いはpack/unpack/vecが早いと思います。


2:[完了] しろ [2006/11/26 13:10 ]

my ($c,$b,$a)=unpack("C*",unpack("B10B20B20", $val));
でうまくいきました。
ありがとうございます。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]