Hexadezimale Zahl zu Integer umwandeln

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

das wurgel

Betreff: Hexadezimale Zahl zu Integer umwandeln

BeitragSa, Jan 23, 2010 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Tag, ich hab mir gerade eine Funktion geschrieben, die Strings mit Hexadezimalen Zahlen zu Integers umwandeln soll. Aber aus unerfindlichen Gründen funktionieren bei negativen Zahlen die letzten beiden Ziffern nicht, stattdessen kommt immer nur 80 oder 00. Mein Kopf ist schon regelrecht am dampfen, ich kann mir das einfach nicht erklären.

Hier der Code: [AUSKLAPPEN]
Print Hex$(HexToInt("80ABCDEF"))
WaitKey()

Function HexToInt(hexstr$)
   Local i
   Local leng=Len(hexstr)
   Local value=$80000000 ; Startwert ist die kleinstmögliche Zahl
   
   For i=1 To 8
      Local char$ ;Zeichen
      Local num ;Wert der einzelnen Ziffer
      
      If i>8-leng Then
         char$=Mid(hexstr, i-8+leng, 1)
         If Str(Int(char))=char Then ; 0 - 9
            num=Int(char)
         Else ; A - F
            Local ascchar=Asc(Upper(char))
            If ascchar>=65 And ascchar<=70 Then
               num=(ascchar-55)
            Else
               Return 0 ;Ungültiges Zeichen
            EndIf
         EndIf
      Else
         num=0
      EndIf
      
      If i=1 Then ;Erstes Bit umkehren
         If num>=8 Then
            num=num-8
         Else
            num=num+8
         EndIf
      EndIf
      value=value+num*16^(8-i)
   Next
   
   Return value
End Function


thx schonmal
1 ist ungefähr 3

Nicdel

BeitragSa, Jan 23, 2010 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt's schon: https://www.blitzforum.de/foru...php?t=9424
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

das wurgel

BeitragSa, Jan 23, 2010 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah cool. Wusste garnicht, dass das so auch funktioniert. Ich dachte, sobald die Grenze von nem Integer überschritten wird, kommt -1 raus, egal was man gerechnet hat. Hab ich mal wieder was dazugelernt Very Happy
thx
1 ist ungefähr 3

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group