- ベストアンサー
10進数を2進数
- みんなの回答 (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)
入力する数の桁に制約がありますが、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)
標準ではないので自分で作成する必要があります。 こんな感じはどうでしょう? 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)
10進を16審にする物はありますが標準では2進に変換する関数はないと思います。 2で割ってあまりを求める計算式を使って計算するか参考URLの様な別売りのライブラリを追加してください。 http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200206_02060011.html
関連するQ&A
- 2進数と16進数の相互変換
VBScriptで 2進数と16進数の相互変換をしたいのですが、 進数を変換する関数としては、 Hex関数やOct関数ぐらいしか見当たりません。 どうしたらいいのでしょうか? よろしくお願いします。
- ベストアンサー
- Microsoft ASP
- 10進数を2進数に変換したい。
業務上であるログの値を解析しています。 ※ログはcsv形式で、Excelに落として編集加工しています。 その中で、10進数を2進数に変換する必要がありますが、変換方法がよくわかりません。 ExcelでDEC2BINという関数があるところまでは突き止めたのですが、 この関数は、与件(10進数)が512を超えるとエラーとなってしまいます。 (解析対象は10進数で10桁です・・。) 2進数に変換する関数、方法などはあるのでしょうか? 大量にログがあるので、一括して加工したいのですが・・。 (VBAの使いかたがわからないので、何とか関数か何かで対処したいのですが・・・。Excelは2002を使ってます)
- ベストアンサー
- オフィス系ソフト
- 16進数を10進数に簡単に変換する関数は?
16進数を10進数に簡単に変換する関数は何かありますか? もしご存知でしたら教えていただけないでしょうか? 例えば、3BDF8という16進数を10進数に変換したいと思っています。
- ベストアンサー
- C・C++・C#
- 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
- ベストアンサー
- Visual Basic
- エクセルでの2進数変換について
今回もよろしくお願いします。 今回、悩んでいるのはエクセルを使い、「10進数を2進数に変換する」という事です。2進数にへんかんしてしまう関数も探してみるとあるのですが、それとは別に関数をいくつか組み合わせて出したいと思っています。 いろいろやってはみたのですがいまいちうまくいきません。 どうか、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- C++で10進数をn進数に…
10進数をn進数に変換する関数のプログラムを教えてください。 できれば、最初の数は2桁以上で変換した後のn進数が16進数とか おっきいやつでもOKなのがいいです。 お願いします
- 締切済み
- C・C++・C#
- n進数の値を10進数の値に変換するには?
こんにちは。 C言語において、n進数の値を10進数の値に変換する方法を考えています。 例えば、2進数の101を、10進数で表すと5になります。 これを関数化し、 n_to_m(int x, unsigned n); といったプロトタイプで、 渡された整数x(n進数)を、10進数での値に変換する関数を作りたいのです。 逆に、10進数の値を、n進数の値に変換する関数も一緒に作りたいと考えています。 何かいい方法を思いついた方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- 10進数→2進数への変換
VBの関数で 10進数→2進数への変換 のライブラリはあるのでしょうか? それとも自分で作成するのでしょうか? もし作成する場合、何か参考になるHPを教えて下さい また作成された方が居られましたら、その関数を頂けないでしょうか 初歩的な質問で申し訳ございません、よろしくお願い申し上げます
- 締切済み
- Visual Basic