dポイントプレゼントキャンペーン実施中!

0-9,a-zを使った36進数で数を数えたいのですが
ゴリゴリ作ればなんとか作れそうなのですが、いまいちすっきりしません。
どなたかよい方法がおわかりの方、教えてください。よろしくお願いいたします。

A 回答 (1件)

一般的な基数変換関数を書いてみましたので、ご参考ください。


(引数の範囲チェックは省いています。)

# convCardinalNum(数値, 変換する基数) → 変換した文字列
sub convCardinalNum {
  my ($dec, $cn) = @_;
  my @ch = (0..9, 'A'..'Z');
  my $str = '';

  while ($dec) {
    $str = $ch[$dec % $cn] . $str;
    $dec = int($dec / $cn);
  }

  return $str;
}
    • good
    • 0
この回答へのお礼

↓こんな方法がありましたか!

$str = $ch[$dec % $cn] . $str;
勉強になりました。ありがとうございます。

お礼日時:2002/07/05 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!