Brauche Base32 zu Base10 Encoder und umgekehrt

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Xaymar

ehemals "Cgamer"

Betreff: Brauche Base32 zu Base10 Encoder und umgekehrt

BeitragMo, Aug 27, 2007 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie schon gesagt:
Brauche Base32 zu Base10 Encoder und umgekehrt
für ein simples Programm/Spiel

hoffe irgend jemand hat sowas und kann es mir geben

Edit:
Woher auch immer dieses [/url] kam
Warbseite

TheShadow

Moderator

BeitragMo, Aug 27, 2007 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hm nimm dir basis16 (HEX) als Grundlage - dort hast du Wert 0-F
dabei musst du erst zu binärzahlen (also 0 und 1) umwandlen
und von binärzahlen in dezimale zahlen

bei basis32 hast du nur den kleinen Unterschied, dass du Werte 0-V hast. Gebe dann den neuen Buchstaben entspe. binärcodes
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Xaymar

ehemals "Cgamer"

BeitragDi, Aug 28, 2007 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst also mit Base16:
Code: [AUSKLAPPEN]
0-0
1-1
2-2
3-3
4-4
5-5
6-6
7-7
8-8
9-9
A-10
B-11
C-12
D-13
E-14
F-15


und da soll ich dann
Code: [AUSKLAPPEN]
G-16
H-17
I-18
J-19
K-20
L-21
M-22
N-23
O-24
P-25
Q-26
R-27
S-28
T-29
U-30
V-31

hinzufügen?

leider weiß ich nicht wie man aus 1i ne zahl macht
Warbseite

TheShadow

Moderator

BeitragDi, Aug 28, 2007 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
die zahlen 0-31 musst du in binärzahlen vorher umwandeln und alle aneinander reihen

1A in base16 wäre dann 0001 : 1010
1A in base32 wäre dann 00001 : 01010

dann musst du nur noch die binärzahl in dezimal umwandeln

wenn zahl (von rechts) gleich 1 ist, dann addieren:
1. stelle = 1
2. stelle = 2
3. stelle = 4
4. stelle = 8
usw...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

aMul

Sieger des Minimalist Compo 01/13

BeitragDi, Aug 28, 2007 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal folgenden Thread an:
https://www.blitzforum.de/foru...hp?t=24849
Vielleicht inspiriert dich das ja Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Xaymar

ehemals "Cgamer"

BeitragMi, Aug 29, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ichs richtig verstanden habe meinst du zb bei sowas:
[01001010](8 zahlen)
soll ich nacheinander die zahlen addieren oder? dies wäre dann:
[3]
oder etwa:
2.stelle rechts:[2]
4.Stelle rechts:[8]+[2]=[10]
7.Stelle rechts:[64]+[10]=[74]
oder ist das auch falsch? vielleicht dies hier?:
[2]+[4]+[7]=[13]?

oder meinst du eine 10-binär zahl?
[0101001010]=[2]+[8]+[64]+[256]=[330]
oder
[0101001010]=[2]+[4]+[7]+[9]=[22]

oder ist das komplett falsch?

(was soll ich damit anfangen???
1:[0001]=[00001]
A:[1010]=[01010])

Edit:
ich glaub ich weiß was du meinst:
nehmen wir mal an da steht:
4G
das wäre dann
4:0100[Base10]:00100[Base32]
G:16:0000[Base10]:10000[Base32]
Warbseite

Xaymar

ehemals "Cgamer"

BeitragFr, Aug 31, 2007 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
bis jetzt bin ich noch nicht weit gekommen:

Code: [AUSKLAPPEN]
;Beispiel:
S$="1D3C"

Print B32TB10(S$)
;Funktion
Function B32TB10(B32$)
   Sl=Len(B32$)
   B10=1
   For Pos=0 To Sl-1
      If Pos=0
         B32Cut$=Left(B32$,1)
      ElseIf Pos=Sl-1
         B32Cut$=Right(B32$,1)
      Else
         B32Cut$=Mid(B32$,Pos,1)
      EndIf
      Select B32Cut$
         Case "1"
            B10=B10*1
         Case "2"
            B10=B10*2
         Case "3"
            B10=B10*3
         Case "4"
            B10=B10*4
         Case "5"
            B10=B10*5
         Case "6"
            B10=B10*6
         Case "7"
            B10=B10*7
         Case "8"
            B10=B10*8
         Case "9"
            B10=B10*9
         Case "A"
            B10=B10*10
         Case "B"
            B10=B10*11
         Case "C"
            B10=B10*12
         Case "D"
            B10=B10*13
         Case "E"
            B10=B10*14
         Case "F"
            B10=B10*15
         Case "G"
            B10=B10*16
         Case "H"
            B10=B10*17
         Case "I"
            B10=B10*18
         Case "J"
            B10=B10*19
         Case "K"
            B10=B10*20
         Case "L"
            B10=B10*21
         Case "M"
            B10=B10*22
         Case "N"
            B10=B10*23
         Case "O"
            B10=B10*24
         Case "P"
            B10=B10*25
         Case "Q"
            B10=B10*26
         Case "R"
            B10=B10*27
         Case "S"
            B10=B10*28
         Case "T"
            B10=B10*29
         Case "U"
            B10=B10*30
         Case "V"
            B10=B10*31
      End Select
   Next
   Return B10
End Function


S$ ist ja 1D(45)3C(108)

EDIT:
Solangsam kapier ichs:
Code: [AUSKLAPPEN]
Base32 --- Base10
0 --- 0
1 --- 1
2 --- 2
...
9 --- 9
A --- 10
B --- 11
...
V --- 31
10 --- 32
11 --- 33
...
19 --- 41
1A --- 42
1B --- 43
...


ich habe heraus gefunden dass es sich irgendwie abwechselt:
10 Zahlen
22 Buchstaben

allerdings ist zwischen 319 und 1034 ein gewaltiger abstand!
was kommt also dazwischen?
(Sry für den doppelpost)
Warbseite

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group