在Perl中将十六进制值转换为十六进制字符串

时间:2012-12-02 12:46:50

标签: perl

考虑:

$index = 0;

$start_addr = 0x50000000;

for (i=$index; $i<256; $i++)
{
    $addr = sprintf("%X",($start_addr = $start_addr + 4));

    print "addr:$addr\n";
}

我得到十六进制形式的数字(如50000000,50000004,50000008,5000000C等等)。我的要求是我应该把它作为0x50000000,0x50000004等等...为此我想把它转换为十六进制字符串(“5000000C”)并将0x(与。运算符如0x.5000000C)连接到那个和那个转换回十六进制值(0x5000000C)。但我不知道如何开始。是否存在更好的解决方案?

1 个答案:

答案 0 :(得分:5)

只需将0x添加到sprintf模式:

sprintf("0x%X",($start_addr = $start_addr + 4));