Umrechnen von Hexadezimal zu Dezimal
Übersicht BlitzBasic Allgemein
CardonicBetreff: Umrechnen von Hexadezimal zu Dezimal |
Fr, Feb 10, 2006 0:03 Antworten mit Zitat |
|
---|---|---|
Hi
Ich habe mir eine kleine Funktion, die hexadezimale Werte (die in Strings gespeichert sind) in dezimale Werte umrechnet, geschrieben. 8) Gibt es eventuell eine einfachere bzw. schnellere Methode ? Code: [AUSKLAPPEN] Function HexaZuDez(hexa$)
length = Len(hexa$) dez = 0 For i = 1 To length Select Mid(hexa$,i,1) Case "1" dez = dez + 1 * 16^(length-i) Case "2" dez = dez + 2 * 16^(length-i) Case "3" dez = dez + 3 * 16^(length-i) Case "4" dez = dez + 4 * 16^(length-i) Case "5" dez = dez + 5 * 16^(length-i) Case "6" dez = dez + 6 * 16^(length-i) Case "7" dez = dez + 7 * 16^(length-i) Case "8" dez = dez + 8 * 16^(length-i) Case "9" dez = dez + 9 * 16^(length-i) Case "A" dez = dez + 10 * 16^(length-i) Case "B" dez = dez + 11 * 16^(length-i) Case "C" dez = dez + 12 * 16^(length-i) Case "D" dez = dez + 13 * 16^(length-i) Case "E" dez = dez + 14 * 16^(length-i) Case "F" dez = dez + 15 * 16^(length-i) End Select Next Return dez End Function die hexadezimalen Werte müssen als String eingegeben werden mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
hecticSieger des IS Talentwettbewerb 2006 |
Fr, Feb 10, 2006 0:18 Antworten mit Zitat |
|
---|---|---|
Hier etwas kürzer:Code: [AUSKLAPPEN] h$=Input$("HEX-Zahl eingeben: ")
wert=0 position=0 For q=Len(h) To 1 Step-1 zwischenwert=Asc(Upper(Mid(h,q,1)))-48 If zwischenwert>9 zwischenwert=zwischenwert-7 wert=wert+zwischenwert*16^position position=position+1 Next Print wert WaitKey |
||
Steffen |
Fr, Feb 10, 2006 9:23 Antworten mit Zitat |
|
---|---|---|
Aber ohne ^ gehts schneller:
Code: [AUSKLAPPEN] h$=Input$("HEX-Zahl eingeben: ")
wert=0 position=0 For q=1 To Len(h) zwischenwert=Asc(Upper(Mid(h,q,1)))-48 If zwischenwert>9 zwischenwert=zwischenwert-7 wert=wert*16+zwischenwert Next Print wert WaitKey ~~CodeTags umgestellt~~ d-bug |
||
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87 |
hecticSieger des IS Talentwettbewerb 2006 |
Fr, Feb 10, 2006 9:35 Antworten mit Zitat |
|
---|---|---|
Hey Steffen, bin echt beeindruckt. Hätte nicht gedacht das man die Umrechnung auch 'vorwärts' durchführen kann... Ausserdem spart man sich eine Variable! Die 'position' kann da weg!.. | ||
Cardonic |
Fr, Feb 10, 2006 13:02 Antworten mit Zitat |
|
---|---|---|
Hi
Ich habe auch schon an den ASCII-Codes studiert; habe aber keine vernünftige Lösung gefunden Ich finde es toll, dass ihr mir noch andere Möglichkeiten gezeigt habt Vielen Dank mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
BtbN |
Fr, Feb 10, 2006 15:27 Antworten mit Zitat |
|
---|---|---|
Normal wandelt Int("$AF12BF") Auch Hexa-Dezimal in Dezimal um, kann aber sein, dass ich mich täuse. | ||
Apocalyptic |
Fr, Feb 10, 2006 15:32 Antworten mit Zitat |
|
---|---|---|
BORNtobeNAMELESS hat Folgendes geschrieben: Normal wandelt Int("$AF12BF") Auch Hexa-Dezimal in Dezimal um, kann aber sein, dass ich mich täuse.
Ja, das tust du |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
Cardonic |
Fr, Feb 10, 2006 15:50 Antworten mit Zitat |
|
---|---|---|
@ BORNtobeNAMELESS : Was denkst du, warum wir solch eine Funktion überhaupt schreiben. | ||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
BtbN |
Fr, Feb 10, 2006 17:07 Antworten mit Zitat |
|
---|---|---|
Ich habs ma in BMax gestestet, und da gibt Int("$FF") 255 zurück.
Ich meine mich zu erinnern, dass das in BB genau so war. |
||
Cardonic |
Fr, Feb 10, 2006 18:48 Antworten mit Zitat |
|
---|---|---|
Ich habs ma in BB2D und B+ getestet, und da gibt Int("$FF") 0 zurück
Ich denke nicht, dass deine Erinnerungen in diesem Fall korrekt sind mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
hecticSieger des IS Talentwettbewerb 2006 |
Fr, Feb 10, 2006 23:19 Antworten mit Zitat |
|
---|---|---|
Das hier geht auch mit B3DCode: [AUSKLAPPEN] Print Int($ff)
Man sollte das ganze ohne "" angeben, dann gehts.
WaitKey So jetzt ist der ganze Code schon ganz kurz geworden! Kennt jemand noch kürzer? : |
||
Hip Teen |
Fr, Feb 10, 2006 23:40 Antworten mit Zitat |
|
---|---|---|
Schlaumeier..
Du kannst da genauso Code: [AUSKLAPPEN] Print $FF
schreiben. $ leitet in BB ja ne Hex Zahl ein, das ganze wird dann beim compilen umgerechnet. Was machst du aber, wenn das ganze in ner Variable steckt? NA? eben -.- |
||
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger" |
hecticSieger des IS Talentwettbewerb 2006 |
Fr, Feb 10, 2006 23:56 Antworten mit Zitat |
|
---|---|---|
Stimmt! Bin wohl schon zu lange wach... grrrr... Meine Gedankenkreise kreisen und können sich an nichts mehr orientieren... | ||
Cardonic |
Sa, Feb 11, 2006 0:56 Antworten mit Zitat |
|
---|---|---|
@ hectic : Der Sinn der langen Codes ist, dass man eine hexadezimale Zahl, welche in einem String gespeichert ist, in eine Binäre Zahl umrechnen kann; dies lässt sich leider nicht mit einer Codezeile schreiben
mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group