0

したがって、どういうわけか、次の 16 進データから以下(03 00 21 04 80 04)の値が取得されました。

どうすればこれを行うことができ、どのように達成されたのか誰にもわかりますか?

Band                                 = 3  (40,6)
Duplex_Mode                          = 0  (46,1)
Result                               = 0  (47,1)
Reserved_1                           = 0  (48,8)
Min_Search_Half_Frames               = 1  (56,5)
Min_Search_Half_Frames_Early_Abort   = 1  (61,5)
Max_Search_Half_Frames               = 1  (66,5)
Max_PBCH_Frames                      = 0  (71,5)
Number_of_Blocked_Cells              = 0  (76,3)
Number_PBCH_Decode_Attemp_Cells      = 1  (79,3)
Number_of_Search_Results             = 1  (82,4)
Reserved_2                           = 0  (86,2)

括弧内のパラメーターは、私が言われたオフセット/長さです。その情報に基づいて、このペイロードを解凍する方法がわかりません。

だから私は書いた

my $data = pack ('C*', map hex, split /\s+/, "03 00 21 04 80 04");
($tmp1, $Reserved_1, $tmp2) = unpack("C C V", $data);

そして今助けてください。$tmp1上記の表の値をおよびから展開するにはどうすればよい$tmp2ですか?

編集: 16 進データ ="00 00 00 7F 08 03 00 21 04 80 04 FF D7 FB 0C EC 01 44 00 61 1D 00 00 10 3B 00 00 FF D7 FB 0C 00 00 8C 64 00 00 EC 45"

ありがとう!

4

1 に答える 1

0

ビットマスクのセットを定義し、ビットごとの AND 演算を使用してデータをアンパックすることができます。

于 2012-10-11T20:13:05.527 に答える