VBA将负十进制数转换为octo和hexa

时间:2015-12-21 16:20:54

标签: vba

我试图让这个程序不仅转换正数,还转换为负数。根据这段代码,我可以修改什么,所以它也将负十进制数转换为octo?另外,如果我还想将非舍入数字转换为二进制数,我该怎么办?例如321.123到二进制。

Private Sub Conversion_Click()
Dim chiffreentrer As Integer
Dim reste As Integer
Dim reste2 As String
Dim chiffreocto As String

chiffreentrer = CInt(InputBox("Entrez un chiffre decimal:", "Conversion    Decimal a Octo"))
Do While chiffreentrer >= 1
    reste = chiffreentrer Mod 8
    reste2 = CStr(reste)
    chiffreentrer = chiffreentrer \ 8

    chiffreocto = reste & chiffreocto
Loop
MsgBox "Le chiffre en octo est de : " & chiffreocto, , "Conversion Decimal a Octo"
End Sub

-

Public Function Division(Nombre As Integer)


      i = 1
     j = 1
            Bla = ""
         Nbinit = Nombre
         reste = 0
 ActiveSheet.Cells(i, 1) = Nombre
           ActiveSheet.Cells(i, 2) = "÷2"
          ActiveSheet.Cells(i, 2).HorizontalAlignment = xlRight

     Do


reste = (Nombre - 2 * Int(Nombre / 2))

Nombre = Int(Nombre / 2)

Bla = reste & Bla


i = i + 1
ActiveSheet.Cells(i, 1) = Nombre
ActiveSheet.Cells(i, 2) = reste

Loop While (Nombre > 0)

         MsgBox "Le nombre " & Nbinit & " est équivalent à " & Bla & " en binaire"

结束功能

1 个答案:

答案 0 :(得分:1)

试试这个:

Private Sub Conversion_Click()
Dim chiffreentrer As Integer
Dim reste As Integer
Dim reste2 As String
Dim chiffreocto As String

chiffreentrer = CInt(InputBox("Entrez un chiffre decimal:", "Conversion    Decimal a Octo"))
Do While chiffreentrer >= 1 Or chiffreentrer <= -1
    reste = chiffreentrer Mod 8
    reste2 = CStr(reste)
    chiffreentrer = chiffreentrer \ 8
    If Left(chiffreocto, 1) = "-" Then chiffreocto = Mid(chiffreocto, 2)
    chiffreocto = reste & chiffreocto
Loop
MsgBox "Le chiffre en octo est de : " & chiffreocto, , "Conversion Decimal a Octo"
End Sub