Umrechnen von Hexadezimal zu Dezimal
Übersicht
BlitzBasic
Allgemein|
|
CardonicBetreff: Umrechnen von Hexadezimal zu Dezimal |
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 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 |
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 |
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 |
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 |
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 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 |
Antworten mit Zitat |
|---|---|---|
| Normal wandelt Int("$AF12BF") Auch Hexa-Dezimal in Dezimal um, kann aber sein, dass ich mich täuse. | ||
Apocalyptic |
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 |
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 |
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 |
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 |
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 |
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 |
Antworten mit Zitat |
|---|---|---|
|
Stimmt! Bin wohl schon zu lange wach... grrrr... Meine Gedankenkreise kreisen und können sich an nichts mehr orientieren... |
||
|
|
Cardonic |
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
