C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

10進数の数値を2進数表記の文字列に変換

こちらに関係してます。
端点一致を探る、組み合わせテスト5 - C#ATIA

段々業務が忙しくなってきたので、思うように取り組めません・・・。

どうしても2進数が直ぐにはイメージ出来ない為、確認用の関数を
探してみました。
10進数の値を2進数に変換する(Excei2000以降)

個人的に

  • 出来るだけ再帰は使いたくない
  • 戻り値が引数に入るのは許せない

の2点から、参考サイトのコードを修正しこんな感じにしました。

'vba
'10進数→2進数ダンプ
Private Sub DumpDec2Bin(ByVal n&)
    Debug.Print "Dec: " + CStr(n) + "  Bin: " + ConvDec2Bin(n)
End Sub

'10進数→2進数
''' @param :n-long
''' @return:string
Private Function ConvDec2Bin(ByVal n&) As String
    Dim res: res = vbNullString
    Dim tmp&
    Do
        tmp = n \ 2
        If tmp = 0 Then
            res = (n Mod 2) & res
            Exit Do
        End If
        res = (n Mod 2) & res
        n = tmp
    Loop
    ConvDec2Bin = res
End Function

参考サイトのものを利用して0~100万まではチェックしたから、恐らく大丈夫なはず。

8分木は後回しにして、とりあえず遅くても動くものを先に完成させようかな。