• ベストアンサー

基数変換のプログラム教えてください。(初心者)

VBで10進数を16進数に変えるプログラムを作成しています。("15"とテキストボックスに入力し「変換ボタン」を押すと"F"と表示されるようなやつです)条件が「16進数の最大桁が64桁のもの」を作成するのが条件です。(当たり前ですがオーバーフローします・・。)16進数→10進数に変換するのは何とか出来たのですが、逆ができません。 どなたか知恵をお貸しください。

質問者が選んだベストアンサー

  • ベストアンサー
  • azicyan
  • ベストアンサー率21% (368/1747)
回答No.1

16進の求め方は知っていますか? 例えば1000の10進を16に・・・ 1000/16 = 62...8 この商をまた16で割る 62/16=3...14(E) 商が16より小さくなるまでやります。 で、商→余り→余り・・・・というわけで 10進の1000の16進は3E8となります。 配列にしてA(1)に最終的な商、A(2)~に余りを入れていけば、A(1)~~~で並べれば16進になります。 わかりにくくてすいません(^_^;)

kyo----
質問者

お礼

いえいえとんでもない! 素早いご回答ありがとうございました! もう少し考えてみますね! ありがとうございました。

その他の回答 (3)

  • N_Grade
  • ベストアンサー率0% (0/1)
回答No.4

もしただ単純に変換したいということであれば下記の関数がありますね。 10進->16進 strTMP$ = Hex(intTMP$) 16進->10進 intTMP$= Val("&H" & "16進文字列")

kyo----
質問者

お礼

なるほどー! こういう変換方法もあるのですね! ありがとうございました!

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

1.言語はVB6.0でしょうか、VB.NETでしょうか。 2.>(当たり前ですがオーバーフローします・・。) オーバーフローが発生しない程度の数値の範囲内で、 10進数->16進数の変換ができれば良いのですか。 それとも、16進数の0~FFF...FF(64桁)迄の全ての数値に対応した変換が出来ることが条件でしょうか? 3.>16進数→10進数に変換するのは何とか出来たのですが FF..FF(64桁)の値も(オーバーフロー無しで)10進数に変換することが出来たのでしょうか?

kyo----
質問者

お礼

説明不足で申し訳ございません! 1、VB6.0です。 >2、16進数の0~FFF...FF(64桁)迄>の全ての数値に対応した変換が出来ることが条件で>しょうか? その通りです。 3、はい。配列の繰り上がり処理を活用し何とかできました。64桁でもオーバーフローしません。 もう少し自分なりに考えてみますね! ありがとうございました。

  • wogota
  • ベストアンサー率42% (66/154)
回答No.2

10進の数の割り算が問題なくできれば16進への変換を 行うことができます。 ある数を16で割った余りがその数の16進として表記できる 一番下の位となります。位取り記数法の考えから、16で 割ったときの商は先ほど求めた一番下の位を取り除いた数と なります。 例を挙げると次のようになります。 ・12345678901234567890(10進)を16進に変換する 12345678901234567890/16=771604931327160493余り2 771604931327160493/16=48225308207947530余り13 48225308207947530/16=3014081762996720余り10 3014081762996720/16=188380110187295余り0 188380110187295/16=11773756886705余り15 11773756886705/16=735859805419余り1 735859805419/16=45991237838余り11 45991237838/16=2874452364余り14 2874452364/16=179653272余り12 179653272/16=11228329余り8 11228329/16=701770余り9 701770/16=43860余り10 43860/16=2741余り4 2741/16=171余り5 171/16=10余り11 10/16=0余り10 商が0になったので 10,11,5,4,10,9,8,12,14,11,1,15,0,10,13,2を16進数に置き換えて AB54A98CEB1F0AD2 となります。

kyo----
質問者

お礼

詳しいご説明本当にありがとうございました! もう少し考えてみますね! 本当にありがとうございました!

関連するQ&A