• ベストアンサー

16進数から10進数へ

 16進数から10進数への関数を教えてください。 VBでです。 HEXという関数は10から16ですよね。

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

  • ベストアンサー
  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.1

こんにちは CDec(&H2C) ていう感じでしょうか。(答えは44)

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

皆さん1バイト(16進2桁)を前提にしておられるようだが 実は問題になるのは通常は、多桁のものであるはず。 少数データでしかテストしていないが下記を私家製の関数化して使ってください。 Sub test01() tbl = "0123456789abcdef" ' s = "3ffc01" ' s = "fc" ' s = "c1fc" s=InputBox("16進表現数=") n = 0 j = 0 For i = Len(s) To 1 Step -1 a = Mid(s, i, 1) p = InStr(tbl, a) ' MsgBox "p=" & p If p = 0 Then MsgBox "Error" End If n = n + (p - 1) * 16 ^ j j = j + 1 Next i MsgBox n End Sub

daisuke-123
質問者

お礼

皆様 ご回答ありがとうございました。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

どれでもどうぞ。 違いはヘルプを参照してください。 a = "&HF" MsgBox CInt(a) MsgBox CLng(a) MsgBox CDbl(a)

  • SHJYOR
  • ベストアンサー率35% (7/20)
回答No.2

HEX関数は、10進から16進の変換ではなく、数値を16進文字列に変換する関数です。例えば...   Hex( 44 ) → "2C"   Hex( 256 ) → "100"   Hex( &H2C ) → "2C" と、なります。これら16進文字列を数値に戻そうとするなら、Val( "&H" + str ) や CDec( "&H" + str ) で良いと思います(strは16進文字列)。 ですから、例えば、テキストボックスText1に入力した16進文字列を10進文字列に変換してテキストボックスText2にセットしたいとすれば、   Text2.Text = CStr( CDec( "&H" + Text1.Text ) ) とすれば変換できると思います(ただしText1に正しい16進文字列がセットされていなければエラーが出ると思いますが...)。 私は普段VBをあまり使わないので絶対の自信はありませんが、こんな感じでよいのではないでしょうか。

関連するQ&A

  • 10進数→2進数

    hex関数のように10進数から2進数に変換する関数はないでしょうか? もしあれば教えてください。

    • ベストアンサー
    • Perl
  • 2進数と16進数の相互変換

    VBScriptで 2進数と16進数の相互変換をしたいのですが、 進数を変換する関数としては、 Hex関数やOct関数ぐらいしか見当たりません。 どうしたらいいのでしょうか? よろしくお願いします。

  • Excelで16桁の16進数を10進数に変換

    Excelを使って、16桁の16進数を10進数に変換したいと考えております。 HEX2DECでは、桁数が多すぎてエラーとなってしまいました。 関数の組み合わせでも、VBAで組むのでもどちらでも構いません。 こうすればできる、というようなアイデアだけでも、いただけるとうれしいです。 宜しくお願いいたします。

  • MATLAB 進数変換

    MATLABで、0.1260 -1.0190 1.0838 のような10進数を16進数に変換するにはどうすればよいのでしょうか?dec2hex()という関数を利用するのですが整数でないと使えないので整数に直すのでしょうか?

  • Hex関数

    こんにちは VBでちょっとしたことなんですが、自前の関数を作成するかどうかで悩んでいます。 nバイトの配列データ(dim xx() as Byte と宣言されている)を1バイトあたり2桁で表示したいのですが、Hex関数(あるいはHex$関数)では、0x00 の場合や0~9の場合、"0"や1桁になってしまうんですね。 もし組み込み関数で1バイトを2桁16進数表示できる変換関数があれば、自前のものより高速だし楽だと思い、迷ってます。 「そんなものはないので自分で作れ」とか「こんなのあるよ」とか教えてください。お願いします。

  • 10進数→2進数への変換

    VBの関数で  10進数→2進数への変換 のライブラリはあるのでしょうか?  それとも自分で作成するのでしょうか? もし作成する場合、何か参考になるHPを教えて下さい また作成された方が居られましたら、その関数を頂けないでしょうか  初歩的な質問で申し訳ございません、よろしくお願い申し上げます

  • 素数を探すプログラム…。

    今作っているプログラムで素数を使用したいのですが、素数を探すプログラムが分からなくて困っています。 どなたか初心者の私にも分かるプログラムを教えていただけませんか? (VB自体には素数を探す関数とか持っていないのでしょうか…?) お願いします。 (P.S)本当は出来るだけ多く探したいのですが確か無限にあるんですよね…。

  • 【VB6.】10進数を16進数に変換(符号つき)

    お世話になります。 どうしてもわからないので教えてください。 やりたいことは以下です。 ●DecをHexの符号ありに(1byte)変換 ●結果としてDec「-02」を変換してHex「FE」が欲しい。 -128~127(変換後は80~7F)まで200通り以上あるので自動変換したいです。 使用しているインターネットのサイトだとできますが、VB6のプログラムで書くとうまくいきません。 ネットに繋がらない環境で変換しなくてはいけなくなったので、どなたか助けてください! お願いします。

  • エクセルで16進数を2進数に変換した際に頭の0を表示させる方法は?

    エクセルの関数についての質問です。 1つのセルに16進数で2e14という値があった場合に、これを一旦2進数に変換すると、計算機上では10 1110 0001 0100となります。 普通にこれがエクセル関数でできればいいのですが、桁数が問題なのか変換できませんでした。 そこで、2つのセルに2eと14に分けてから2進数表記して連接しようとしたのですが、そこで問題が起きました。 14の頭に0が3つついていますが、これが表示されませんでした。これを表示させないと当然連接した結果の値が全く違うものになってしまいます。 エクセル関数のHEX2BINを使った際に、変換後に頭の0が表示されるようなことは出来ないでしょうか。 エクセルなどに関してまだ素人当然なので教えて下さい。 よろしくお願いします。

  • 16進数関数のhex関数について

    16進数を扱う、「hex」という関数があったようななかったような・・・。 16進数の文字列を、例えば、「"0a"」という文字列が あって、この"0a"の前に"0x"という文字列を付け足して"0x0a"とし、この"0x0a"を10という整数値に変換したいのですが、どのようなソースファイルになりますか。 初心者なので、どうプログラムを組んで良いのか分かりませんでしたので、教えて下さい。

専門家に質問してみよう