我尝试将10个十进制数加倍,然后添加到另一个十六进制数,但得到的结果很奇怪。
use strict;
use warnings;
my $address= 0x10000;
for ( $i =0 ; $i<=499 ; $i++ ) {
my $line = hex($i+1)*10;
my $new_address = $address + $line;
print $new_address\n;
}
我想得到的答案应该是每{15} hex($i+1)
成为
hex(15) = F * 10 = F0
10000 + F0 = 100F0
hex(16) = 10 * 10 = 100
10000 + 100 = 10100
但我的回答是不正确的。我的计算错了吗?
答案 0 :(得分:4)
打印值时,您应该转换为十六进制表示,
use strict;
use warnings;
my $address= 0x10000;
for (my $i =0 ; $i<=499 ; $i++ ) {
# 10 != 0x10
my $line = ($i+1)*0x10;
my $new_address = $address + $line;
# print sprintf("%X\n", $new_address);
printf("%X\n", $new_address);
}