因此,从以下十六进制数据(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)
paranthesis中的参数是我被告知的偏移/长度。我不明白我应该如何根据这些信息解压缩这个有效载荷。
所以我写了
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
?
编辑:十六进制数据= "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"
谢谢!
答案 0 :(得分:0)
您可能希望定义一组位掩码,并使用按位AND运算来解压缩数据。