• 締切済み

C++で10進数をn進数に…

10進数をn進数に変換する関数のプログラムを教えてください。 できれば、最初の数は2桁以上で変換した後のn進数が16進数とか おっきいやつでもOKなのがいいです。 お願いします

みんなの回答

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.2

n進数を表現するにはn個の数字が必要です。 そこで 0、1、2,...、9、A、B、...、Z、α、β、... を使って、60進数くらいまでは作れそうです。 ある数kを k=(a0)n^p + (a1)n^(p-1) + ....+(ap) と表せば良いのですから、 (ap)はkをnで割ったときのあまり、これを上の文字の配列から選んで ある文字で表す。  商を、さらにnでわって あまりをとれば、(a(p-1))がきまる。 これに対応する文字をさっきの文字の左に書く。 この時の商をさらにnで割って。 ..... これを続ける。 ただし、58進数 で 1αΒ... と言っても ほかの人が理解してくれるかどうかは不明です。 詳しい説明が必要です。 何しろ、58進数か、59進数かは文字を見ても 判断できないのですから。

  • GOLDEN
  • ベストアンサー率46% (283/607)
回答No.1

itoa関数じゃ駄目ですか? char *itoa(int value, char *string, int radix); です stdlib.hをincludeする必要があります valueに元の数字を、stringに変換後の文字列を格納する配列の先頭アドレスを、 radixに基数を指定します 例えば、100を16進に変換してstr[]に格納するのであれば itoa(100,str,16); と書きます 数字が大きい場合は、ltoaってのもあります

関連するQ&A