Hexadezimale Zahl zu Integer umwandeln
Übersicht

![]() |
das wurgelBetreff: Hexadezimale Zahl zu Integer umwandeln |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() thx |
||
1 ist ungefähr 3 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group