的字符串我有一個問題的理解和使用「VEC」關鍵字。如何十六進制轉換爲十六進制
我讀其中的值存儲在小端十六進制logpacket。在我的代碼中,我必須使用unpack關鍵字將不同的字節解包爲標量。
這裏是我的問題的一個例子:
my @hexData1 = qw(50 65);
my $data = pack ('C*', @hexData1);
my $x = unpack("H4",$data); # At which point the hexadecimal number became a number
print $x."\n";
#my $foo = sprintf("%x", $foo);
print "$_-> " . vec("\x65\x50", $_, 1) . ", " for (0..15); # This works.
print "\n";
但我想用上面的語句通過以下方式聯繫。我不想用引號發送十六進制字符串。我想使用十六進制$ x的標量數組。但它不會工作。如何將我的$ x轉換爲十六進制字符串。這是我的要求。
print "$_-> " . vec($x, $_, 1).", " for (0..15); # This doesn't work.
print "\n";
我最終的目標是讀取兩個字節十六進制數的右邊第三位。
如何使用的「VEC」命令?
當他有兩個以上的字節時,'reverse'將不起作用,就像他在另一篇文章中評論過的那樣。 – ikegami 2012-03-16 01:06:28