• ベストアンサー

10進数を2進数

Visual Basicで10進数を2進数に変換する関数を 教えてください

noname#2635
noname#2635

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 10進数→n進数変換用関数を自作してみました。 標準モジュールにでも置いて下さい。 '10進数の正の数値Numを、Keta桁のn進数の文字列に変換する 'nは2~16まで Public Function nShinsuFromD(Num As Long, n As Long, Keta As Long) As String   Dim temp() As Long '各桁の10進数値表現   Dim a As Long '仮置   Dim i As Long '桁数のループカウンタ   Dim str As String '変換文字列   On Error GoTo Err_End   'エラー処理   '10進数値範囲外   If Num < 0 Then     nShinsuFromD = "ERROR_Num"     Exit Function   End If   'n進数範囲外   If n > 16 Or n < 2 Then     nShinsuFromD = "ERROR_n"     Exit Function   End If   'Keta範囲外   If Keta < 1 Then     nShinsuFromD = "ERROR_Keta"     Exit Function   End If   ReDim temp(Keta - 1)   a = Num   str = ""   For i = 0 To Keta - 1     temp(i) = a Mod n     a = Int(a / n)     str = ChangenShinsu(temp(i)) & str   Next i   nShinsuFromD = str   Exit Function Err_End:   nShinsuFromD = "ERROR_System" End Function 'Numを、Num番目の文字に変換する '0<=Num<=15とする Public Function ChangenShinsu(Num As Long) As String   Const ChangeStrings As String = "0123456789ABCDEF"   On Error GoTo Err_End   ChangenShinsu = Mid(ChangeStrings, Num + 1, 1)   Exit Function Err_End:   ChangenShinsu = "" End Function

その他の回答 (3)

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

入力する数の桁に制約がありますが、2で割ったあまりを 捉える方法で、ご参考までに。関数化は簡単です。 Sub test01() Dim s As String Dim a As Long Dim n As Long Dim j As Long s = "" n = InputBox("10進数を入力") a = n While (Not n = 1) j = n Mod 2 s = CStr(j) & s n = Int((n - j) / 2) Wend s = 1 & s MsgBox CStr(a) & "-->" & s End Sub

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

標準ではないので自分で作成する必要があります。 こんな感じはどうでしょう? Function Bin(ByVal n As Integer) Dim strOct As String Dim intLen As Integer Dim intIndex As Integer Dim strCut As String '8進数に変換 strOct = Oct(n) '先頭から1文字ずつ切り出して2進数にする intLen = Len(strOct) For intIndex = 1 To intLen strCut = Mid(strOct, intIndex, 1) Select Case strCut Case "0" Bin = Bin & "000" Case "1" Bin = Bin & "001" Case "2" Bin = Bin & "010" Case "3" Bin = Bin & "011" Case "4" Bin = Bin & "100" Case "5" Bin = Bin & "101" Case "6" Bin = Bin & "110" Case "7" Bin = Bin & "111" End Select Next End Function

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

10進を16審にする物はありますが標準では2進に変換する関数はないと思います。 2で割ってあまりを求める計算式を使って計算するか参考URLの様な別売りのライブラリを追加してください。 http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200206_02060011.html

参考URL:
http://www.vector.co.jp/soft/win95/prog/se242852.html

関連するQ&A

  • 10進数→2進数

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

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

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

  • 10進数を2進数に変換したい。

    業務上であるログの値を解析しています。 ※ログはcsv形式で、Excelに落として編集加工しています。 その中で、10進数を2進数に変換する必要がありますが、変換方法がよくわかりません。 ExcelでDEC2BINという関数があるところまでは突き止めたのですが、 この関数は、与件(10進数)が512を超えるとエラーとなってしまいます。 (解析対象は10進数で10桁です・・。) 2進数に変換する関数、方法などはあるのでしょうか? 大量にログがあるので、一括して加工したいのですが・・。 (VBAの使いかたがわからないので、何とか関数か何かで対処したいのですが・・・。Excelは2002を使ってます)

  • 16進数を10進数に簡単に変換する関数は?

    16進数を10進数に簡単に変換する関数は何かありますか? もしご存知でしたら教えていただけないでしょうか? 例えば、3BDF8という16進数を10進数に変換したいと思っています。

  • 16進数を10進数に変換する方法...

    お初にお目にかかります(^^) 簡潔に質問しますm(_ _)m バージョン:MS-Visual Basic6.0 質問内容: 16進数を10進数に変換する方法がわかりません。 Hex(Text1.Text) や Oct(Text1.Text) のような方法で 16進数・8進数に変換できるんですが… 10進数に変換する方法がわかりません。 P.S できれば、16進数→10進数、16進数や10進数→2進数 …に、変換する方法も、よろしければ教えてくださいませ m(_ _)m

  • エクセルでの2進数変換について

    今回もよろしくお願いします。 今回、悩んでいるのはエクセルを使い、「10進数を2進数に変換する」という事です。2進数にへんかんしてしまう関数も探してみるとあるのですが、それとは別に関数をいくつか組み合わせて出したいと思っています。 いろいろやってはみたのですがいまいちうまくいきません。 どうか、よろしくお願いします。

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

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

  • n進数の値を10進数の値に変換するには?

    こんにちは。 C言語において、n進数の値を10進数の値に変換する方法を考えています。 例えば、2進数の101を、10進数で表すと5になります。 これを関数化し、 n_to_m(int x, unsigned n); といったプロトタイプで、 渡された整数x(n進数)を、10進数での値に変換する関数を作りたいのです。 逆に、10進数の値を、n進数の値に変換する関数も一緒に作りたいと考えています。 何かいい方法を思いついた方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。

  • 16進数変換

    エクセルで10進数のデータを一括で16進数変換する方法があったら教えてください。1セルずつなら関数で変換できるのですが一括変換する方法がわからないのです。わかる方がいらっしゃったらよろしくお願いいたします。

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

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

専門家に質問してみよう