Dezimal zu Hexadezimal

III

Mitglied
Hallo

Wie kann ich auf eine simple Art und Weise dezimale Zahlen von meinem Programm in Hexadezimale Zahlen umwandeln lassen?

Danke
 
Danke, funktioniert wunderbar.

Und wie war das mit dem Oktalen System?

Wie wandle ich Hexadezimale Zahlen in oktale um?

Gruß III
 
Ich hab' dafür 'nen Code geschrieben:

Code:
Function Zahlensys(Basis1 As Byte, Basis2 As Byte, Zahl1 As String) As String
 Dim Num As Long
 'Zahl1 -> Dezimal
 For X = Len(Zahl1) To 1 Step -1
  Select Case Mid$(Zahl1, X, 1)
  Case Chr$(48) To Chr$(57)
   Num = Num + (Basis1 ^ (Len(Zahl1) - X)) * Val(Mid$(Zahl1, X, 1))
  Case Chr$(65) To Chr$(89)
   Num = Num + (Basis1 ^ (Len(Zahl1) - X)) * (Asc(Mid$(Zahl1, X, 1)) - 54)
  End Select
 Next X
 
 'Dezimal -> Basis2
 'Bestimmung der Stellenanzahl des Ergebnises
 Dim N As Integer
 N = 0
 Do
  N = N + 1
  If Num / (Basis2 ^ N) < 1 Then Exit Do
 Loop
 'Berechnung des Ergebnisses
 Dim E As String
 E = ""
 For X = N To 1 Step -1
  E = E + Ziffer(Fix(Num / (Basis2 ^ (X - 1))))
  Num = Num - (Fix(Num / (Basis2 ^ (X - 1)))) * (Basis2 ^ (X - 1))
 Next X
 Zahlensys = E
End Function

Function Ziffer(Nr As Integer) As String
 If Nr < 10 Then
  Ziffer = Trim$(Str$(Nr))
 Else
  Ziffer = Chr$(Nr + 55)
 End If
End Function

Zum Umrechnen z.B. Binär zu Hexadezimal einfach:
Ergebnis$ = Zahlensys 2,16,"1101001"
Für Hexadezimal in Oktal (ganz klar) einfach:
Ergebnis$ = Zahlensys 16,8,"FF"

Wichtig: Immer Die Zahl als String angeben.
Es funktioniert mit Zahlensystemen bis zur Basis 36.

Ich hoffe es und ich habe keine Fehler übersehen.
 
Zuletzt bearbeitet:
Das ist aber ne Menge Code.

Ich hab das sehr viel schneller geschrieben. Trotzdem Danke.

Zu Oktal:

Code:
Public Function byte2okt(vv)
Dim b1, b2, b3

b1 = vv And &H7
b2 = (vv And &H38) / 8
b3 = (vv And &HC0) / &H40

byte2okt = Trim(Str(b3)) + Trim(Str(b2)) + Trim(Str(b1))
End Function

Zu Hexadezimal: (wird in Textdatei gespeichert)

Code:
For i = 0 To 255
    Print #1, Format(i, "000"), Format(Trim(Hex(i)), "00"), byte2okt(i)
Next i

Ich beschränke mich hier wie ihr seht auf 256 Zeichen.

Gruß III
 
Zurück