8958


perlでテーブル表を作成するとき、行と列の項目はどういう基準で決定しますか？  
項目ごとのデータを入れたいとき、どのようにすればよいですか。  
下記のコードでは仕組みは分かりませんが、行と列は分かれております。

[code]

    open (my $f, ">", "table.txt") or die "cannot open textfile : $!\n";
    printf $f "%4s", "";
    for ( my $item = 0 ; $item < 16 ; $item++ ) {
    　　printf $f "%4X ", $item;
    }
    for ( my $num16 = 0 ; $num16 <=1023 ; $num16++ ) {
    　　printf $f "\n%3X ", $num16;
    　　printf $f "%04d ", $num16;
    }
    close($f);
    
[/code]


CC BY-SA 3.0
2015-04-09T08:11:43.893
8948
2015-04-09T13:10:33.850
9223
question
perl
16進数を10進数に変換するテーブル表


> 行と列の項目はどういう基準で決定しますか？

よくわからない部分がありますけど、  
今１６進数を１０進数に変換するテーブルということなので、

[code]

        0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    0   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
    1  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
    ...
    A 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
    
[/code]

のようなものを想定していると思いますので、  
列名は、０～Ｆで行名は、０から１６毎の１６進数でいいかと思います。

こういう縦・横の（つまり２次元の）データは２次元配列で保持するといいかと思います。  
Perl
でいう配列は１次元配列で、２次元配列は配列(の参照)の配列というような形で実現します。(Ｃ言語で言えばダブルポインタで実現するもののような感じです。)  
この場合の具体的な初期化は例えば次のようにします。

[code]

    my @table = ();
    for(my $i=0; $i < 1024; $i += 16){#１６要素ずつ追加
        push(@table, [$i..($i+15)]);#配列の最後に配列(例[0..15]０から１５の要素を持つ配列)を追加する
    }
    
[/code]

そうすると、

[code]

    print $table[0xA][0x1];#Ａの１の要素(つまり0xA1を意味する）１６１が表示される。
    $table[0xA][0x1] = 161;#Ａの１の要素に１６１を代入する。
    
[/code]

のように行と列で扱えるようになります。


CC BY-SA 3.0
2015-04-09T13:10:33.850
8958
2015-04-09T13:10:33.850
5044
8948
answer